Я обновил свое приложение Angular с версии 5.2 до 6.0, следуя инструкциям из https://update.angular.io.
Теперь мое приложение Angular не создается из-за миграции "rxjs-5-to-6-migrate":
ОШИБКА в bla.ts: ошибка TS2339: свойство 'map' не существует для типа 'Observable'.
У меня есть следующий импорт:
import { Observable } from 'rxjs/observable';
import { of } from 'rxjs/observable/of';
import { map } from 'rxjs/operators';
Если я изменю импорт таким образом, он будет работать:
import { Observable } from 'rxjs/observable';
import 'rxjs/Rx';
Но я не понимаю, почему ... Я хочу использовать явный импорт, а не импортировать все операторы.
ОБНОВЛЕНИЕ: Как указывалось в некоторых ответах, я должен использовать каналы, чтобы иметь возможность использовать операторы. Это была моя проблема, потому что я думал, что все еще могу связать операторы с наблюдаемыми.
Старый стиль:
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
this.http.get('/api/appsettings/get').map(data => { return true; }).catch(() => { return Observable.of(false); });
Новый стиль
import { of, Observable } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
this.http.get('/api/appsettings/get').pipe(map(data => { return true; }), catchError(() => { return of(false); }));
import 'rxjs/add/operator/map';
? - person CruelEngine   schedule 18.05.2018import { map } from 'rxjs/operators';
- person Michael Doye   schedule 18.05.2018