Я всегда знал, чтобы импортировать мои операторы Observable
отдельно, чтобы ограничить время загрузки. Однако сегодня я заметил кое-что, что, надеюсь, кто-то может мне объяснить.
Я использую IntelliJ/WebStorm с Webpack.
Скажем, на странице в моем ngOnInit
у меня есть http-вызов:
ngOnInit() {
this.http.get('https//:google.com').map(e => e);
}
Если я не импортирую оператор карты, компилятор будет жаловаться, поэтому я импортирую его следующим образом:
import 'rxjs/add/operator/map';
Все хорошо в мире. Пока я не буду использовать Наблюдаемый. Итак, я добавлю.
ngOnInit() {
let test = Observable.create(subscriber => {
return null;
});
this.http.get('https//:google.com').map(e => e);
}
Теперь компилятор понимает, что он не может найти Observable, поэтому я могу заставить IntelliJ/WebStorm импортировать его для меня и добавить в верхнюю часть моего файла:
import {Observable} from 'rxjs';
Все снова хорошо. Но этот новый импорт, по-видимому, делает импорт карты неактуальным. Я имею в виду, что, если я удалю импорт карты и просто оставлю Observable, все компилируются отлично...
Однако, если я укажу для импорта Observable следующим образом:
import {Observable} from 'rxjs/Observable';
Затем я должен повторно добавить импорт для оператора карты...
Я импортирую все RxJS, когда я импортирую свой Наблюдаемый, как это?
import {Observable} from 'rxjs';
Если да, то как я могу сказать IntelliJ не делать этого и импортировать только класс?