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';