属性'catch'在types'Observable <any>'上不存在

在使用Http服务的Angular 2文档页面上,有一个例子。

getHeroes (): Observable<Stuff[]> { return this.http.get(this.url) .map(this.extractData) .catch(this.handleError); } 

我克隆了angular2-webpack-starter项目并自己添加了上面的代码。

我导入Observable使用

import {Observable} from 'rxjs/Observable';

我假设属性Observable也被导入( .map作品)。 看着rxjs.beta-6的更新日志,并没有提到有关catch

是的,您需要导入运营商:

 import 'rxjs/add/operator/catch'; 

或者通过这种方式导入Observable

 import {Observable} from 'rxjs/Rx'; 

但在这种情况下,您需要导入所有的操作员。

看到这个问题的更多细节:

  • Angular 2使用TypeScript错误的HTTP GET http.get(…)。map不是[null]中的函数