Аргумент типа «Объект» не может быть назначен параметру типа «строка» - PullRequest
0 голосов
/ 16 января 2019

Мое приложение работает нормально, но у меня появляется следующая ошибка:

Аргумент типа «Объект» не может быть назначен параметру типа 'Строка')

Ниже моего кода:

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 голосов
/ 16 января 2019

Transcompiler нужен намек на то, что возвращает ваш http.post, потому что вы ввели аргумент saveToken. Transcompiler хочет убедиться, что вы передаете строку.

добавить явный тип:

public login(userData: any) {
  return this.http
    .post("/api/users/login", userData)
    .map((token: string) => this.saveToken(token));
}
0 голосов
/ 16 января 2019

Как говорит ошибка, вы присваиваете 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...