http - feil TS2346: Leverte parametere samsvarer ikke med noen signatur for kallmål
Jeg er ny på Typescript og Angular2, og jeg prøver å lage et løfte på en HTTP GET-forespørsel, men koden nedenfor (nøyaktig return this.http.get(url)-linjen gir meg en feil:
error TS2346: Supplied parameters do not match any signature of call target.I tjenesten min har jeg metoden isLoggedIn
isLoggedIn(): Promise<Object> {
return this.http.get('/some/path')
.map((res: Response) => res.json())
.toPromise();
}
Da vil jeg bruke det i komponenten min, slik:
onInit() {
this.login.isLoggedIn()
.then((data: any) => {
if (data.hasOwnProperty('status') && data.status === 401) {
this.router.navigate(['/Login']);
} else {
this.router.navigate(['/Home'])
}
});
}
Jeg lette etter hvordan jeg kunne bruke HTTP-forespørsel og løfte på riktig måte, men jeg kunne ikke finne noen god beskrivelse.
Svar #1
Et raskt blikk på Angular-kildekode:
static toPromise(obj: Observable<any>): Promise<any> { return (<any>obj).toPromise(); }Avslører at toPromise-metoden bør motta en Observable<any> (din kall var: toPromise())
Jeg antar at dette er grunnen til feilen