我在我的项目上运行 tsc,我得到这些与 RxJS5 库相关的错误:
I run tsc on my project, and I get these errors relating to the RxJS5 lib:
$ tsc node_modules/rxjs/observable/FromEventObservable.d.ts(11,39): error TS2304: Cannot find name 'EventTarget'. node_modules/rxjs/observable/FromEventObservable.d.ts(11,103): error TS2304: Cannot find name 'NodeList'. node_modules/rxjs/observable/FromEventObservable.d.ts(11,114): error TS2304: Cannot find name 'HTMLCollection'. node_modules/rxjs/observable/dom/AjaxObservable.d.ts(16,23): error TS2304: Cannot find name 'XMLHttpRequest'. node_modules/rxjs/observable/dom/AjaxObservable.d.ts(77,59): error TS2304: Cannot find name 'Event'. node_modules/rxjs/observable/dom/AjaxObservable.d.ts(82,13): error TS2304: Cannot find name 'Event'. node_modules/rxjs/observable/dom/AjaxObservable.d.ts(97,20): error TS2304: Cannot find name 'Event'. node_modules/rxjs/observable/dom/AjaxObservable.d.ts(98,10): error TS2304: Cannot find name 'XMLHttpRequest'. node_modules/rxjs/observable/dom/AjaxObservable.d.ts(108,32): error TS2304: Cannot find name 'Event'. node_modules/rxjs/observable/dom/AjaxObservable.d.ts(108,44): error TS2304: Cannot find name 'XMLHttpRequest'. node_modules/rxjs/observable/dom/AjaxObservable.d.ts(119,10): error TS2304: Cannot find name 'XMLHttpRequest'. node_modules/rxjs/observable/dom/AjaxObservable.d.ts(128,39): error TS2304: Cannot find name 'XMLHttpRequest'. node_modules/rxjs/observable/dom/AjaxObservable.d.ts(136,22): error TS2304: Cannot find name 'XMLHttpRequest'. node_modules/rxjs/observable/dom/WebSocketSubject.d.ts(10,29): error TS2304: Cannot find name 'MessageEvent'. node_modules/rxjs/observable/dom/WebSocketSubject.d.ts(11,33): error TS2304: Cannot find name 'Event'. node_modules/rxjs/observable/dom/WebSocketSubject.d.ts(12,34): error TS2304: Cannot find name 'CloseEvent'. node_modules/rxjs/observable/dom/WebSocketSubject.d.ts(15,63): error TS2304: Cannot find name 'WebSocket'. node_modules/rxjs/observable/dom/WebSocketSubject.d.ts(27,13): error TS2304: Cannot find name 'WebSocket'. node_modules/rxjs/observable/dom/WebSocketSubject.d.ts(28,32): error TS2304: Cannot find name 'Event'. node_modules/rxjs/observable/dom/WebSocketSubject.d.ts(29,33): error TS2304: Cannot find name 'CloseEvent'. node_modules/rxjs/observable/dom/WebSocketSubject.d.ts(32,63): error TS2304: Cannot find name 'WebSocket'. node_modules/rxjs/observable/dom/WebSocketSubject.d.ts(36,23): error TS2304: Cannot find name 'MessageEvent'.有谁知道为什么会这样?这是我的 package.json 文件:
does anyone know why this is happening? this is my package.json file:
{ "name": "oplog.rx", "version": "0.0.101", "description": "", "main": "index.js", "scripts": { "test": "suman test" }, "repository": { "type": "git", "url": "git+github/ORESoftware/oplog.rx.git" }, "keywords": [ "oplog", "mongodb", "rx", "rxjs" ], "author": "Olegzandr V.D.", "license": "MIT", "bugs": { "url": "github/ORESoftware/oplog.rx/issues" }, "homepage": "github/ORESoftware/oplog.rx#readme", "dependencies": { "bson": "^2.0.4", "json-stdio": "0.0.1016", "mongodb": "^3.0.4", "rxjs": "^5.5.7" }, "devDependencies": { "@types/mongodb": "^3.0.8" } } 推荐答案您需要将 "dom" 添加到 tsconfig.json 中的 lib 设置 文件的 compilerOptions:
You need to add "dom" to the lib setting in your tsconfig.json file's compilerOptions:
"lib": ["dom", "es2015"]或者,您可以使用 skipLibCheck compilerOption 来避免检查 node_modules 中的 .d.ts 文件:
Alternatively, you can use the skipLibCheck compilerOption to avoid checking .d.ts files within node_modules:
"skipLibCheck": true有关解释,请参阅此问题.
基本上,fromEvent 可观察工厂同时支持 Node 和 DOM 事件源,TypeScript 需要了解 DOM 类型.
Basically, the fromEvent observable factory supports both Node and DOM event sources and TypeScript needs to know about the DOM types.
这个 PR 应该可以解决问题.
更多推荐
RxJS5 TypeScript 打字失败
发布评论