在Angular 2(TypeScript)代码下面给出了3以下的错误,如何解决它们.请建议.
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { NgModule,Component } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { HttpModule,Http } from '@angular/http'; import 'rxjs/add/operator/map'; import { Observable } from "rxjs/Observable"; @Component({ selector: 'http-client',template: `<h1>All Products</h1> <ul> <li *ngFor="let product of products"> {{product.title}} </li> </ul> `}) class AppComponent { products: Array<string> = []; theDataSource: Observable; constructor(private http: Http) { this.theDataSource = this.http.get('api/products/') .map(res => res.json()); } ngOnInit() { // Get the data from the server this.theDataSource.subscribe( data => { if (Array.isArray(data)) { this.products = data; } else { this.products.push(data); } },err => console.log("Can't get products. Error code: %s,URL: %s ",err.status,err.url),() => console.log('Product(s) are retrieved') ); } } @NgModule({ imports: [BrowserModule,HttpModule],declarations: [AppComponent],bootstrap: [AppComponent] }) class AppModule { } platformBrowserDynamic().bootstrapModule(AppModule);
错误是,
> TS2314泛型类型’Observable’需要1个类型的参数.
> TS7006参数’data’隐式具有’any’类型.
> TS7006参数’err’隐式具有’any’类型.
theDataSource: Observable<any>;
任何可以(或应该如果可能的话)是一个更具体的类型,它匹配它应该发出的值的类型.