RxJS5 TypeScript не удается набрать
Я бегу tsc
в моем проекте, и я получаю эти ошибки, относящиеся к 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:
{
"name": "oplog.rx",
"version": "0.0.101",
"description": "",
"main": "index.js",
"scripts": {
"test": "suman test"
},
"repository": {
"type": "git",
"url": "git+https://github.com/ORESoftware/oplog.rx.git"
},
"keywords": [
"oplog",
"mongodb",
"rx",
"rxjs"
],
"author": "Olegzandr V.D.",
"license": "MIT",
"bugs": {
"url": "https://github.com/ORESoftware/oplog.rx/issues"
},
"homepage": "https://github.com/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"
}
}
2 ответа
Решение
Вам нужно добавить "dom"
к lib
установка в вашем tsconfig.json
файла compilerOptions
:
"lib": ["dom", "es2015"]
Кроме того, вы можете использовать skipLibCheck
compilerOption
чтобы избежать проверки .d.ts
файлы внутри node_modules
:
"skipLibCheck": true
Смотрите эту проблему для объяснения.
В основном, fromEvent
observable factory поддерживает источники событий Node и DOM, и TypeScript должен знать о типах DOM.
Этот пиар должен решить проблему.
rimraf dist && tsc
node_modules/broadcast-channel/types/broadcast-channel.d.ts:6:16 - error TS2304: Cannot find name 'MessageEvent'.
6 "message": MessageEvent;
"машинопись": "^4.6.4" "tsc": "^2.0.4",
После добавления «dom» к параметру lib в файле tsconfig.jsoncompileOptions: «lib»: [«dom»]
тогда все идет нормально.