27
votes

I am using Angular 2 and getting this error when using an observable Property '_body' does not exist on type 'Response'. The code is below

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

The getMarketMovers function is simply this:

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

I have tried to set data to type any but that isn't working for me. The code works and there is definitely a _body property on data but it still throws there error and I cant build with this error.

Any help is greatly appreciated.

3
show getMarketMovers method code. - micronyks
Try data.json()._body - yurzui
You getting an run-time error or compile-time error? Sounds for me like an compile-time error, so you have to cast that data variable to your correct type. Or your getMarketMovers function should be return the correct type! - slaesh
Thanks! I put :any after my getMarketMovers function getMarketMovers(): any and it works - georgej

3 Answers

76
votes

UPDATE

Another way, is to explicitly tell TypeScript that we’re not interested in doing strict type checking.

(<any>data)._body

ORIGINAL

This data["_body"] should work.

19
votes
1
votes

to solve this error better way would be to add. : Promise <any> after getMarketMovers() function.