Сигнатуры перегрузки для switchMap
, которые включают селектор результатов, доступны с v6 с или без rxjs-compat
. Просто эти перегрузки устарели, так как они будут удалены в версии 7.
В версии 6 они все еще могут использоваться; амортизация - это всего лишь предупреждение о предстоящем изменении.
С rxjs/internal/operators/switchMap.d.ts
:
import { ObservableInput, OperatorFunction } from '../types';
export declare function switchMap<T, R>(project: (value: T, index: number) => ObservableInput<R>): OperatorFunction<T, R>;
/** @deprecated resultSelector is no longer supported, use inner map instead */
export declare function switchMap<T, R>(project: (value: T, index: number) => ObservableInput<R>, resultSelector: undefined): OperatorFunction<T, R>;
/** @deprecated resultSelector is no longer supported, use inner map instead */
export declare function switchMap<T, I, R>(project: (value: T, index: number) => ObservableInput<I>, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
Цель rxjs-compat
не в том, чтобы изменить установку rxjs
, а rxjs
делегатам на rxjs-compat
для функциональности, которая была удалена.
Например, когда установлен rxjs-compat
, импорт в стиле v5 все равно будет работать. То есть это будет хорошо с установленной rxjs-compat
:
import { switchMap } from 'rxjs/operators/switchMap';
Принимая во внимание, что без установленного rxjs-compat
этот оператор импорта приведет к ошибке.
Подробнее см. В руководстве по миграции .