Angular 类型';可观察<;对象>';不可分配给类型';可观察<;布尔值>';

Angular 类型';可观察<;对象>';不可分配给类型';可观察<;布尔值>';,angular,observable,angular7,type-mismatch,Angular,Observable,Angular7,Type Mismatch,我有一个错误: 类型“Observable”不可分配给类型“Observable”。 类型“Object”不可分配给类型“boolean” deleteUser(userId: string): Observable<boolean> { return this.httpClient .delete(url, this.getHttpOptions()) .map(res => { return res; })

我有一个错误: 类型“Observable”不可分配给类型“Observable”。 类型“Object”不可分配给类型“boolean”

  deleteUser(userId: string): Observable<boolean> {
    return this.httpClient
      .delete(url, this.getHttpOptions())
      .map(res => {
        return res;
      })
      .catch(this.handleError);
  }
deleteUser(userId:string):可观察{
返回此.httpClient
.delete(url,this.getHttpOptions())
.map(res=>{
返回res;
})
.接住(这个.把手错误);
}

当我试图打印res时,它的类型是布尔值。

res的类型必须是
布尔值
,默认情况下它将是
任意
。将map替换为以下内容:

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

您可以通过删除
.map
(不起任何作用)来修复它:

deleteUser(userId:string):可观察{
返回此.httpClient
.delete(url,this.getHttpOptions())
.接住(这个.把手错误);
}

在编译时,TypeScript不知道API调用实际产生了什么,它从声明和函数签名中推断出来

      .delete<boolean>(url, this.getHttpOptions())
.delete(url,this.getHttpOptions())
应该有用


(是的,扔掉
map
)。

试试:
返回这个.httpClient.delete(…)
,你就不需要
映射了。这个错误应该从不同的地方抛出。检查使用此deleteUser方法的代码。确保你也在那里设置了可观察的;或者您可以尝试.delete(url,this.getHttpOptions());这应该也行
      .delete<boolean>(url, this.getHttpOptions())