因此将一个角度项目从5升级到7。我迁移了RxJs链以使用管道。我进行了大量查询,因此使用switchMap进行查找;但是typescript和RxJs 6.2现在要我将switchMap返回类型强制转换为Observable,而以前没有。也许这是RxJ中隐式键入的问题? switchMap不应该总是返回一个Observable吗?例如:
之前:
function GetFoo() : Observable<IFoo>
// ...
GetFoo.pipe(switchMap<IFoo,IBar>(foo => GetBarObservable(foo))
.subscribe(bar => {
console.log(bar)
});
现在必须是:
function GetFoo() : Observable<IFoo>
// ... note 2nd arg is now Observable<IBar>
GetFoo.pipe(switchMap<IFoo,Observable<IBar>>(foo => GetBarObservable(foo))
.subscribe(bar => {
console.log(bar)
});
代码一旦更改就可以正常工作,并且没有任何抱怨的工具,但是不确定我理解为什么吗?