如何从rxjs 6 withLatestFrom键入数组映射参数

Bla*_*axy 5 rxjs typescript rxjs6

在Rxjs 6之前,我们可以做到:

interface TypeA {
  payload: any;
}

source$.pipe(
  withLatestFrom(source2$, (source1: TypeA, source2: TypeB) => 
       ({ payload: source1.payload, source2 }) ),
)
Run Code Online (Sandbox Code Playgroud)

我们可以在resultSelector方法参数中为这里构造的对象添加source1source2传递适当的类型.

但现在我们必须做到以下几点:

source$.pipe(
  withLatestFrom(source2$),
  map(([source1, source2]) => ({ source1, source2 }) ),
)
Run Code Online (Sandbox Code Playgroud)

这样做我们无法在数组参数中的source1和source2上添加类型.然后键入将丢失,IDE不建议.payloadsource1的例子.

如何使用新语法添加数组参数的正确输入?

kev*_*314 12

您可以像添加元组一样添加它:

source$.pipe(
  withLatestFrom(source2$),
  map(([source1, source2]: [TypeA, TypeB]) => ({ source1, source2 }) ),
)
Run Code Online (Sandbox Code Playgroud)

虽然我很惊讶你没有自动输入,我认为它确实传播了它们......