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

时间:2019-01-16 16:49:18

标签: angular typescript angular7

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

  

“对象”类型的参数不能分配给类型的参数   '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;
}

2 个答案:

答案 0 :(得分:0)

正如错误所述,您将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;
}

答案 1 :(得分:0)

Transcompiler需要提示您http.post返回的内容,因为您键入了saveToken的参数。 Transcompiler希望确保您要传递字符串。

添加显式类型:

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