【问题标题】:Type 'Observable<Object>' is not assignable to type 'Observable<boolean>'类型 'Observable<Object>' 不可分配给类型 'Observable<boolean>'
【发布时间】:2019-05-28 16:10:03
【问题描述】:

我有一个错误: 类型“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&lt;boolean&gt;(...),你就不需要map
  • 这个错误应该从不同的地方抛出。检查您使用此 deleteUser 方法的代码。并确保你也在那里设置了 Observable ;或者你可以试试 .delete(url, this.getHttpOptions());这也应该工作

标签: angular observable angular7 type-mismatch


【解决方案1】:

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

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

应该可以。

(是的,放弃map)。

【讨论】:

    【解决方案2】:

    res 的类型需要为boolean,默认为any。替换地图如下:

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

    【讨论】:

      【解决方案3】:

      您可以通过删除您的 .map 来修复它(这不会做任何事情):

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-21
        • 1970-01-01
        • 2017-06-29
        • 2020-11-23
        • 2018-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多