'响应'类型中不存在属性'_body'

geo*_*gej 27 observable typescript angular

我正在使用Angular 2并在使用observable时出现此错误Property '_body' does not exist on type 'Response'.代码如下

this.securitiesService.getMarketMovers()
    .subscribe(data => {
        console.log(JSON.parse(data._body))
    });
Run Code Online (Sandbox Code Playgroud)

getMarketMovers函数就是这样的:

getMarketMovers() {
    return this._http.get('...url address...')
}
Run Code Online (Sandbox Code Playgroud)

我试图设置data类型,any但这对我不起作用.代码工作,_body数据肯定有一个属性,但它仍然会抛出错误,我不能用这个错误构建.

任何帮助是极大的赞赏.

Kon*_*nst 73

UPDATE

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

(<any>data)._body
Run Code Online (Sandbox Code Playgroud)

原版的

data["_body"]应该工作.

  • 这看起来像黑客恕我直言,是否有更好的方法来检查Response是否为空? (2认同)
  • 如果您有[禁止的尖括号断言](https://palantir.github.io/tslint/rules/no-angle-bracket-type-assertion/),您还可以使用`(data as any)._body` (2认同)