Typescript 缺少Angular2 http。映射函数

Typescript 缺少Angular2 http。映射函数,typescript,angular,Typescript,Angular,我在一个 但是当尝试使用它时,我只得到TypeError:this.http.get(…).map不是[null]中的函数。: getChannels():Promise<Channel> { return this.http.get('...') .map(function (response:Response) { ... }).toPromise(); } 你知道我在这一点上可能会出错吗?Observabl

我在一个

但是当尝试使用它时,我只得到
TypeError:this.http.get(…).map不是[null]中的函数。

getChannels():Promise<Channel> {
    return this.http.get('...')
        .map(function (response:Response) {
            ...
        }).toPromise();
}



你知道我在这一点上可能会出错吗?

Observable
默认情况下只有几个操作符。您必须显式导入它们:

import 'rxjs/add/operator/map';
或者,如果您不想考虑,只需加载所有内容(例如,在引导文件中):


您希望index.html看起来像这样,以便system.js可以找到您在组件中导入的所有rxjs依赖项。

System.config({
defaultJSExtensions:true,
套餐:{
应用程序:{
格式:“寄存器”
}
},
地图:{
“rxjs”:“lib/rxjs”
}
});
系统导入('app/boot');

Maybe or?这已经被回答了数千次,只需搜索即可。这应该是公认的答案。我不知道为什么,但我需要添加
import*作为“rxjs”的Rx
Rx.Observable.of(0)使可观察的支持映射函数实际上是一个非常糟糕的解决方案@tom10271。永远不要使用import*@Enrico我没有说过并建议这是一个解决方案,我肯定知道import*的后果。我只是说我很困惑为什么这是我项目中的工作。
"dependencies": {
  "angular2": "2.0.0-beta.0",
  "systemjs": "0.19.6",
  "es6-promise": "^3.0.2",
  "es6-shim": "^0.33.3",
  "reflect-metadata": "0.1.2",
  "rxjs": "5.0.0-beta.0",
  "zone.js": "0.5.10"
},
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="node_modules/angular2/bundles/http.dev.js"></script>
import 'rxjs/add/operator/map';
import 'rxjs/Rx';