2016-09-19 5 views
17

Używam Angular 2 i otrzymuję ten błąd, gdy używam obserwowalnego Property '_body' does not exist on type 'Response'. Kod jest poniżejWłaściwość "_body" nie istnieje na typie "Odpowiedź"

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

Funkcja getMarketMovers jest po prostu tak:

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

Próbowałem ustawić data wpisać any ale to nie działa dla mnie. Kod działa i na pewno jest właściwość _body na danych, ale nadal generuje błąd i nie mogę skompilować tego błędu.

Każda pomoc jest bardzo doceniana.

+0

pokaz 'getMarketMovers' kod metody. – micronyks

+1

Spróbuj 'data.json() ._ body' – yurzui

+0

Otrzymujesz błąd czasu wykonania lub błąd podczas kompilacji? Brzmi dla mnie jak błąd podczas kompilacji, więc musisz rzucić tę zmienną "data" do poprawnego typu. Lub twoja funkcja 'getMarketMovers' powinna zwracać poprawny typ! – mxii

Odpowiedz

42

UPDATE

Innym sposobem jest, aby wyraźnie powiedzieć, maszynopis, że nie jesteśmy zainteresowani w tym ścisłej kontroli typów.

(<any>data)._body 

ORIGINAL

data["_body"] to powinno działać.

+1

Pomogło mi to w prawie dokładnie tej samej sytuacji. Dzięki! – mottosson

+1

to wygląda na włamanie IMHO, czy istnieje lepszy sposób sprawdzenia, czy odpowiedź ma puste ciało? – Toolkit

+0

To jedyny sposób, w jaki mogłem sprawić, żeby działało, dziękuję! :) – balazs630