2016-02-12 4 views
3

У меня есть проект 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. Однако дополнительные операторы не могут быть исправлены, если отсутствует класс Observablerxjs. Так вы вроде должны заставить транскрипта emitSystem.register для Observable путем импорта, как это:

// boot.ts 
import 'rxjs/Observable' 
import 'rxjs/add/operator/debounceTime' 
... 

Все Заслуга @RyanCavanaugh, который указал мне в правильном направлении.

+2

См https://github.com/Microsoft/TypeScript/wiki/FAQ#why-are-imports-being-elided-in-my-emit –

+0

Спасибо за скорейший ответ 'импорт«rxjs/«Наблюдаемый» выполнил эту работу. – TylerDurden

ответ

0

Вы должны импортировать Observable класс правильный путь:

import { Observable } from 'rxjs/Observable'; 

Или следующее, если вы хотите включить все операторы в то же время:

import { Observable } from 'rxjs/Rx'; 
+0

Я пробовал это, но это не имело никакого значения. Проблема заключалась в том, что, как указано в wiki, я не использовал «Observable» позже в своем коде, потому что я просто применял операторы к «valueChanges», наблюдаемому с помощью Angular control. Спасибо за ваш ответ. – TylerDurden

Смежные вопросы