У меня есть проект Angular2 с использованием JSPM и SystemJS. Я пытаюсь импортировать RxJS
и несколько операторов в мой файл boot.ts
, но мой импорт НЕ переводится в вывод boot.js
. ТакПочему tsc (Компилятор машинописного текста) игнорирует импорт RxJS?
// boot.ts
import {Observable} from 'rxjs/Observable'
import 'rxjs/add/operator/debounceTime'
...
, как описано здесь: https://github.com/ReactiveX/RxJS#es6-via-npm заканчивается как
// boot.js
System.register(['rxjs/add/operator/debounceTime', ...
tsc
(пробовал с 1.7.5 и 1.8.0):
// tsconfig.json
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": true,
"noImplicitAny": false,
"module": "system",
"moduleResolution": "node",
"rootDir": "src",
"target": "es5"
}
, "exclude": [
"jspm_packages",
"node_modules",
"typings/main.d.ts",
"typings/main"
]
}
Что мне не хватает ???
UPDATE
машинопись только emit
импорт, если он используется в дальнейшем в коде. Мне просто нужны дополнительные операторы для прослушивания valueChanges
, наблюдаемого на Angular2 control
. Однако дополнительные операторы не могут быть исправлены, если отсутствует класс Observable
rxjs
. Так вы вроде должны заставить транскрипта emit
System.register
для Observable
путем импорта, как это:
// boot.ts
import 'rxjs/Observable'
import 'rxjs/add/operator/debounceTime'
...
Все Заслуга @RyanCavanaugh, который указал мне в правильном направлении.
См https://github.com/Microsoft/TypeScript/wiki/FAQ#why-are-imports-being-elided-in-my-emit –
Спасибо за скорейший ответ 'импорт«rxjs/«Наблюдаемый» выполнил эту работу. – TylerDurden