Angular 类型';可观察<;对象>';不可分配给类型';可观察<;布尔值>';
我有一个错误: 类型“Observable”不可分配给类型“Observable”。 类型“Object”不可分配给类型“boolean”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; })
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())