Это на самом деле старый способ импорта операторов.
import 'rxjs/add/observable/of';
на самом деле является методом прототипирования of
до Observable
.Когда вы импортируете это, каждый объект Observable имеет доступный метод of
.Вот почему вы должны поместить эти строки импорта в корневой файл, например app.module
.Однако, как я говорил вам в начале, это старый способ.
С RxJs 5.5 в игру вступили работоспособные операторы.Вы можете и должны импортировать операторы / наблюдаемые следующим образом
import { of } from 'rxjs/observable/of';
const myObs = of('some value');
Таким образом, операторы и наблюдаемые становятся древовидными.Webpack не будет помещать неиспользуемые операторы в ваш выходной пакет.
Обновление
Допустим, вы используете несколько операторов и добавили статический импорт в глобальный файл.Через некоторое время вы реорганизовали свой код и больше не используете Observable.of
.Но допустим, вы забыли, что уже импортировали это в глобальный файл.Даже если вы больше не используете of
, вы все равно получите код of
, наблюдаемый в вашем выходном пакете.Прототипирование делает невозможным тряску вашего кода.Я предлагаю вам посмотреть это .Бен Леш объясняет работоспособные операторы и RxJs6.