Я обновил мое приложение Angular с версии 5.2 до 6.0 с инструкциями от https://update.angular.io.
Теперь мое приложение Angular не собирается из-за "rxjs-5-to-6-migrate"«Миграция:
ОШИБКА в bla.ts: ошибка TS2339: Свойство« карта »не существует для типа« Наблюдаемый ».
У меня есть следующие импорта:
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); }));