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"]

Кроме того, вы можете использовать skipLibCheckcompilerOption чтобы избежать проверки .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»]

тогда все идет нормально.

Другие вопросы по тегам