为什么在打字稿中的管道中使用switchMap现在需要对第二个arg使用Observable <>?

时间:2019-02-27 01:31:36

标签: angular typescript rxjs6

因此将一个角度项目从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) 
   });

代码一旦更改就可以正常工作,并且没有任何抱怨的工具,但是不确定我理解为什么吗?

0 个答案:

没有答案