Я полностью запутался в новом RxJS 6 и пакете совместимости. В настоящее время у меня установлены (для Angular 6):
"rxjs": "^6.1.0",
"rxjs-compat": "^6.1.0",
Ранее я использовал эту подпись для switchMap
(в RxJS5):
switchMap(
project: function: Observable,
resultSelector: function(outerValue, innerValue, outerIndex, innerIndex): any): Observable
Но при обновлении до версии 6 доступна только эта перегрузка (без параметра resultSelector
):
export declare function switchMap<T, R>(this: Observable<T>,
project: (value: T, index: number) => ObservableInput<R>): Observable<R>;
Я импортирую его с
import { switchMap } from 'rxjs/operators';
Как я могу получить доступ к этой перегрузке?
Также я попытался посмотреть \node_modules\rxjs\operators\switchMap.d.ts
, чтобы увидеть, какие подписи там были, но содержимое этого файла:
export * from 'rxjs-compat/operators/switchMap';
Итак, похоже, что основной пакет RxJS ссылается на пакет совместимости? Как это имеет смысл? Действительно ли пакет совместимости изменяет RxJS - или мой пакет был поврежден - все файлы также имеют отметки даты 1985 года!
Как я уже сказал, я очень смущен! В чем дело?