尝试将RxJS与TypeScript和Node.js一起使用时遇到问题.我正在使用NPM,我已经包含了rxjs-es版本5.我也使用了Typings,而且我已经包含了两个,es6-shim并且rx.all像这样:
{
"ambientDependencies": {
"es6-shim": "registry:dt/es6-shim#0.31.2+20160317120654",
"rx.all": "registry:dt/rx.all#2.2.28+20160316155526"
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我的tsconfig.json档案.
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules",
"typings/browser",
"typings/browser.d.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
在TypeScript文件中,我尝试执行以下操作:
import { Observable } from 'rxjs/Observable';
当我尝试编译脚本时,我收到以下错误:
typings/main/ambient/rx.all/index.d.ts(10,11): error TS2304: Cannot find name 'Rx'.
Run Code Online (Sandbox Code Playgroud)
即使我尝试在我的脚本中使用RxJS,也会发生这种情况,因此问题与TypeScript类型有关.
为了使用RxJS,我需要使用typings和NPM安装什么?特别是,我对使用Observables很感兴趣.谷歌搜索几个小时后,我似乎无法弄清楚我需要做些什么来使它工作.我试过以下,但没有任何运气.我也在NPM和打字中尝试了很多rx包的组合,但是没有发现任何有用的东西.任何帮助深表感谢!
小智 14
RxJS 5是用typescript编写的,默认情况下它的类型定义包含在已发布模块中,您可能不需要输入rx.all.实际上,这些类型定义是为以前版本的RxJS编写的.只需卸载rx.all类型定义,并尝试导入没有这些.
对Angular(不是AngularJS)完成此操作的正确方法是使用npm中的@types。命令如下:
npm install @types/rx --save-dev
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参见npm。
该类型文件取决于 Rx:
declare module "rx.all" {
export = Rx;
}
Run Code Online (Sandbox Code Playgroud)
尝试安装“rx”以及“rx.all”:
typings install rx --save --ambient
Run Code Online (Sandbox Code Playgroud)
但请注意,这些键入假设您正在导入“rx.all”或“rx”,因此您的导入不会为您提供键入信息:
import { Observable } from 'rxjs/Observable';
Run Code Online (Sandbox Code Playgroud)
您可以从“rx”而不是“rxjs”导入吗?
import { Observable } from 'rx';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35317 次 |
| 最近记录: |