Тип «Observable<Object>» нельзя присвоить типу «Observable<boolean>»

У меня ошибка: Тип «Observable» не может быть присвоен типу «Observable». Тип «Объект» не может быть присвоен типу «логический».

  deleteUser(userId: string): Observable<boolean> {
    return this.httpClient
      .delete(url, this.getHttpOptions())
      .map(res => {
        return res;
      })
      .catch(this.handleError);
  }

Я получил тип res как логическое значение, когда пытался его напечатать.

Попробуйте это: return this.httpClient.delete<boolean>(...), и вам не понадобится map

David 28.05.2019 10:08

Эта ошибка должна быть выброшена из другого места. Проверьте код, в котором вы используете этот метод удаления пользователя. И убедитесь, что вы также установили Observable<boolean>; Или вы можете попробовать .delete<boolean>(url, this.getHttpOptions()); Это тоже должно работать

zgabievi 28.05.2019 10:08
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
3
2
438
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Тип res должен быть boolean, по умолчанию это будет any. Замените карту следующим образом:

map((res:boolean) => {
    return res;
  })

Вы можете исправить это, удалив свой .map (который ничего не делает):

deleteUser(userId: string): Observable<boolean> {
  return this.httpClient
    .delete(url, this.getHttpOptions())
    .catch(this.handleError);
}
Ответ принят как подходящий

Во время компиляции TypeScript не знает, что на самом деле происходит от вызова API, он выводит это из объявлений и сигнатур функций.

      .delete<boolean>(url, this.getHttpOptions())

должно сработать.

(И да, бросьте map).

Другие вопросы по теме