我对新的 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 日期戳!
就像我说的我很困惑!这是怎么回事?