'Object' 类型的参数不能分配给 'string' 类型的参数

Argument of type 'Object' is not assignable to parameter of type 'string'

我的应用程序工作正常,但出现以下错误:

Argument of type 'Object' is not assignable to parameter of type 'string')

在我的代码下面:

public login(userData: any): Observable<any> {
    return this.http
      .post("/api/users/login", userData)
      .map(token => this.saveToken(token));
}


private saveToken(token: string): string {
    localStorage.setItem("car_auth", token);
    return token;
}

如错误所述,您将 Object 分配给 string

尝试像这样替换您的代码:

public login(userData: any): Observable<string> {
    return this.http
      .post("/api/users/login", userData)
      .map((token: string) => this.saveToken(token));
}


private saveToken(token: string): string {
    localStorage.setItem("car_auth", token);
    return token;
}

Transcompiler 需要提示您的 http.post returns 因为您键入了 saveToken 的参数。 Transcompiler 想要确保您传递的是字符串。

添加显式类型:

public login(userData: any) {
  return this.http
    .post("/api/users/login", userData)
    .map((token: string) => this.saveToken(token));
}