使用Angular2在TypeScript中规范Observable
发布时间:2020-12-17 10:16:33 所属栏目:安全 来源:网络整理
导读:我正在尝试创建一个服务,返回我的组件可以订阅的Observable.但是我收到以下错误: Property 'subscribe' does not exist on type 'Observable'. 我目前正在运行build alpha.44,下面你会发现一些代码可以重现问题. import {Http} from 'angular2/http';import
我正在尝试创建一个服务,返回我的组件可以订阅的Observable.但是我收到以下错误:
Property 'subscribe' does not exist on type 'Observable'. 我目前正在运行build alpha.44,下面你会发现一些代码可以重现问题. import {Http} from 'angular2/http'; import {Observable} from 'angular2/core'; export class Backend { http: Http; constructor(http: Http) { this.http = http; this.getTeams().subscribe(); } public getTeams(): Observable { return this.http.get('/api/teams') .map(JSON.parse); } } 更改代码以返回“任何”类型似乎可行,但这消除了使用TypeScript的一些优点.有没有什么好方法可以在Angular2的当前版本中使用Observables的严格类型?
从http.get返回的是从
rxjs 开始的
Observable ,而不是angular2
Observable .作为临时解决方案,您可以从“@activex / rxjs / dist / cjs / Observable”导入rxjs Observable(参见
this plunker).
import Observable from '@reactivex/rxjs/dist/cjs/Observable'; class Backend { // ... getTeams() : Observable { return this.http.get('api/teams.json') .map(res => res.json()); } } 但恕我直言改变代码返回“任何”是目前最好的解决方案.他们现在这样做in angular2 http module. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |