заводская функция.
обновления до [email protected] и преобразования всех импортов, методов и операторов RxJS в новую форму> 5.5 я получаю ошибку типа во время выполнения, говоря, чтоObservable.of
это не функция. Та же ошибка происходит со всеми методами, которые определены как члены расширенияObservable
, например,Observable.fromEvent
.
С другой стороны, методы, которые определены как отдельные функции, такие какObservable.combineLatest
работать правильно, несмотря на предупреждение компилятора о том, что они не существуют по типуObservable
.
Просто чтобы уточнить, у меня не было проблем ни с одним оператором (после преобразования их в форму трубы). Только с методами.
Решение, которое я нашел, состояло в том, чтобы заменить:
import { of } from 'rxjs/observable/of';
import { fromEvent } from 'rxjs/observable/fromEvent';
...
const x = Observable.of(true, false);
const y = Observable.fromEvent(target, 'click');
с участием
import { ArrayObservable } from 'rxjs/observable/ArrayObservable';
import { FromEventObservable } from 'rxjs/observable/FromEventObservable';
...
const x = ArrayObservable.of(true, false);
const y = FromEventObservable.create(target, 'click');
Но я думаю, что это должно быть лучше. Я прав?
Примечания:
Я вынужден использовать функцию «Ahead Of Time compilation», чтобы создать и обслуживать приложение, потому что в противном случае угловой инжектор вышел бы из строя (но это другой вопрос).Я знаю о существованииэтот другой похожий вопрос, Но это относится к версиям RxJS меньше чем <5.5 в соответствии с ответом.ng --version
дает:
Angular CLI: 1.6.3, Node: 8.9.1, OS: win32 x64, Angular: 5.1.3,
@ angular / cli: 1.6.3, @ angular-devkit / build-optimizer: 0.0.36, @ angular-devkit / core: 0.0.22, @ angular-devkit / schematics: 0.0.42, @ ngtools / json-schema : 1.1.0, @ ngtools / webpack: 1.9.3, @ schematics / angular: 0.1.11, @ schematics / schematics: 0.0.11, машинописный текст: 2.5.3, webpack: 3.10.0,