Ale*_*nez 8 rxjs typescript rxjs5
我遇到了typescript和RxJs v5的问题.
我做了yarn add @reactivex/rxjs(也yarn add rxjs)和我的index.ts做了import Rx from '@reactivex/rxjs';并得到了这个错误:
此外,如果我跑,node ./node_modules/.bin/tsc我也得到了这个错误error TS2307: Cannot find module '@reactivex/rxjs'.
也在做
import { Observable } from 'rxjs/Observable'
Run Code Online (Sandbox Code Playgroud)
那么这似乎与TS本身比与RxJS更相关.
"compilerOptions": {
"module": "commonjs",
"allowJs": true,
"outDir": "dist",
"target": "es2015",
"noImplicitAny": true,
"noEmit": true,
"strictNullChecks": true,
"suppressExcessPropertyErrors": false,
"suppressImplicitAnyIndexErrors": false,
"allowUnreachableCode": false,
"allowUnusedLabels": false,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"lib": [
"es2015",
"dom"
]
}
Run Code Online (Sandbox Code Playgroud)
有了这个^配置似乎解决了VSCode问题,但运行tsc对src/index.ts不工作
node_modules/rxjs/Observable.d.ts(69,60): error TS2693: 'Promise' only refers to a type, but is being used as a value here.
Run Code Online (Sandbox Code Playgroud)
小智 10
尝试在"moduleResolution": "node"内部设置compileOptions以指定TS的模块分辨率策略.
npm install rxjs --save
在你的打字稿中
import { Observable } from 'rxjs/Rx';
这为我解决了这个问题.
小智 5
对我来说,我遇到了以下错误:
错误 TS2307:找不到模块“rxjs-compat/Observable”。
解决方案:而不是导入:
import { Observable } from 'rxjs/Observable';
Run Code Online (Sandbox Code Playgroud)
用:
import { Observable } from 'rxjs';
Run Code Online (Sandbox Code Playgroud)
并且您可以通过用逗号分隔所有内容来放入要导入的可观察对象,例如:
import { Observable, of } from 'rxjs';
Run Code Online (Sandbox Code Playgroud)
对于 RxJS 5 你应该使用:
import * as Rx from 'rxjs';
Run Code Online (Sandbox Code Playgroud)
或者仅导入库的特定部分:
import { Observable } from 'rxjs/Observable';
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅:https ://github.com/ReactiveX/rxjs/#installation-and-usage
| 归档时间: |
|
| 查看次数: |
16404 次 |
| 最近记录: |