2016-12-28 5 views
0

Ich bin neu in Typoskript und ich folgende Tutorial Tour of heroes from angular page Im letzten Kapitel des Tutorials, wenn ich HTTP versuche mit dem folgenden Code zu verwendenTyposkript Ungültige Links Operator

Alles läuft gut, obwohl ich diesen Fehler vom Typescript-Compiler.

enter image description here

Das Problem ist, aufgrund dieses Fehlers ich den Browser zu aktualisieren haben, da browsersync nicht wegen der Fehler synchronisiert wird.

Kann mir irgendein Körper helfen?

Im Folgenden ist der Code

Hero.service.ts

import { HEROES }from './mock.heroes'; 
import { Hero } from './hero'; 
import { Injectable } from '@angular/core'; 
import { Http } from '@angular/http'; 
import 'rxjs/add/operator/toPromise'; 

@Injectable() 
export class HeroService { 
    url: string; 
    constructor(private http: Http){ 
     this.url = "http://jsonplaceholder.typicode.com/users"; 
     this.http = http; 
    } 
    getHeros(): Promise<Hero[]> { 
     if(!HEROES || HEROES.length == 0) { 
      return this.http.get(this.url) 
       .toPromise() 
       .then(response => { 
        HEROES = response.json(); 
       }); 
     } else { 
      let promise: Promise<Hero[]> = new Promise<Hero[]>(function(resolve, reject){ 
       resolve(HEROES); 
      }); 
      return promise; 
     } 
    } 
} 

mock.heroes.ts

import { Hero } from './hero'; 
export var HEROES: Hero[]; 

Antwort

1

Sie die Helden der Typ deklariert HERO ar Ray, aber du weist ihm Json zu.

Sie müssen das Ergebnis

HEROES = <HERO[]>response.json()

ich würde eher werfen vorschlagen Antwortdaten Looping und den Aufbau der HERO-Array durch sie, mit Object.assign, wenn Sie irgendeine Funktion in HERO Klasse

+0

Danke abhi, es half mir, ich über die JSON-Array.Though Through response.json() gibt ein JavaScript-Objekt-Array und nicht JSON-Array, konnte ich nicht direkt zu Hero [] –

+0

glücklich zu helfen :), können Sie markieren die Antwort als akzeptiert – abhirathore2006

Verwandte Themen