我使用 JSPM 和 SystemJS 设置了我的 Angular2 项目。我尝试在我的 boot.ts 文件中导入 RxJS 和一些运算符,但我的导入未被转译为 boot.js 输出。因此,
这里提到的内容如下:https://github.com/ReactiveX/RxJS#es6-via-npm 最终的结果是这样的。
// boot.ts
import {Observable} from 'rxjs/Observable'
import 'rxjs/add/operator/debounceTime'
...
这里提到的内容如下:https://github.com/ReactiveX/RxJS#es6-via-npm 最终的结果是这样的。
// boot.js
System.register(['rxjs/add/operator/debounceTime', ...
tsc
(尝试使用 1.7.5 和 1.8.0 版本):
// tsconfig.json
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": true,
"noImplicitAny": false,
"module": "system",
"moduleResolution": "node",
"rootDir": "src",
"target": "es5"
}
, "exclude": [
"jspm_packages",
"node_modules",
"typings/main.d.ts",
"typings/main"
]
}
我错过了什么吗???
更新
TypeScript只有在代码中稍后使用时才会发出
导入。 我只需要额外的运算符来监听Angular2 控制
的valueChanges
可观察对象。 然而,如果缺少rxjs
的Observable
类,则无法修补附加运算符。 因此,您需要通过像这样导入来强制TypeScript为Observable
发出
System.register
:
// boot.ts
import 'rxjs/Observable'
import 'rxjs/add/operator/debounceTime'
...
所有功劳归功于@RyanCavanaugh,他指导我正确的方向。
import 'rxjs/Observable'
解决了问题。 - TylerDurden