rxjs 在内部映射 switchMap 时需要联合类型

MrV*_*doo 2 rxjs typescript

演示在这里

switchMap(innerHello => {
    return of(world).pipe(map(innerWorld => [innerHello, innerWorld]));
}),
map(([hello, world]) => {
  console.log('result', hello.hello, world.world);
})
Run Code Online (Sandbox Code Playgroud)

为什么,在使用switchMap操作符时,我有一个警告说property hello does not exist on type Hello | World.
我从内部映射返回一个数组,为什么它需要一个联合?

Dav*_*ita 5

推断的类型[innerHello, innerWorld]Array<Hello|World>您不能访问不属于这两种类型的属性。

您可以做的是明确键入您的数组

map(([hello, world]: [Hello, World]) => {
  console.log('result', hello.hello, world.world);
})
Run Code Online (Sandbox Code Playgroud)