type ts2339 tipo propiedad property not httpclientmodule existe exist error does angular typescript rxjs

angular - ts2339 - property http does not exist on type



La propiedad ''json'' no existe en el tipo ''{}'' (2)

Tengo una clase base abstracta en Typescript que se ve así:

import {Http, Headers, Response} from ''angular2/http''; export abstract class SomeService { constructor(private http:Http) {} protected post(path:string, data:Object) { let stringifiedData = JSON.stringify(data); let headers = new Headers(); headers.append(''Content-Type'', ''application/json''); headers.append(''Accept'', ''application/json''); this.http.post(`http://api.example.com/${path}`, stringifiedData, { headers }) .map(res => res.json()) .subscribe(obj => console.log(obj)); } }

Funciona perfectamente Sin embargo, el compilador de Typescript se queja de .map(res => res.json()) . Sigo recibiendo este error:

ERROR in ./src/app/components/shared/something/some.abstract.service.ts (13,29): error TS2339: Property ''json'' does not exist on type ''{}''.

Seguí los ejemplos en la documentación angular 2 , y funciona . Estoy harto de mirar este error. ¿Me estoy perdiendo de algo?


Para mí esto se ve extraño ...

.map(res => (<Response>res).json())

yo lo haría

.map((res: Response) => res.json())


Puede deshacerse de este error por tipo-aserción en Response :

.map((res: Response) => res.json())

http.post() devolverá un Observable<Response> en el que el map requerirá un Objeto de tipo Response . Creo que es una definición faltante en el actual TypeScript AngularJS .d.ts .