【问题标题】:Property '_body' does not exist on type 'Response'“响应”类型上不存在属性“_body”
【发布时间】:2016-09-19 13:22:08
【问题描述】:

我正在使用 Angular 2 并在使用可观察的 Property '_body' does not exist on type 'Response' 时收到此错误。代码如下

this.securitiesService.getMarketMovers()
    .subscribe(data => {
        console.log(JSON.parse(data._body))
    });

getMarketMovers 函数就是这样的:

getMarketMovers() {
    return this._http.get('...url address...')
}

我尝试将data 设置为输入any,但这对我不起作用。该代码有效,并且数据上肯定有一个_body 属性,但它仍然会引发错误,我无法使用此错误进行构建。

非常感谢任何帮助。

【问题讨论】:

  • 显示getMarketMovers方法代码。
  • 试试data.json()._body
  • 您遇到运行时错误或编译时错误?对我来说听起来像是一个编译时错误,所以你必须将 data 变量转换为正确的类型。或者你的 getMarketMovers 函数应该返回正确的类型!
  • 谢谢!我把 :any 放在我的 getMarketMovers 函数 getMarketMovers(): any 之后,它可以工作

标签: angular typescript observable


【解决方案1】:

更新

另一种方法是明确告诉 TypeScript 我们对进行严格的类型检查不感兴趣。

(<any>data)._body

原创

这个data["_body"] 应该可以工作。

【讨论】:

  • 这在几乎完全相同的情况下帮助了我。谢谢!
  • 这看起来像一个 hack 恕我直言,有没有更好的方法来检查响应是否有空的正文?
  • 这是我让它工作的唯一方法,谢谢! :)
  • 1 小时后...找到这个...我喜欢this。非常感谢!
  • 如果您有forbidden angle bracket assertion,您也可以使用(data as any)._body
【解决方案2】:

【讨论】:

    【解决方案3】:

    解决这个错误更好的方法是添加。 : 在 getMarketMovers() 函数之后 Promise

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 2018-12-05
      • 2021-01-09
      • 2020-03-25
      • 1970-01-01
      • 2021-07-10
      相关资源
      最近更新 更多