在Rxjs 6之前,我们可以做到:
interface TypeA {
payload: any;
}
source$.pipe(
withLatestFrom(source2$, (source1: TypeA, source2: TypeB) =>
({ payload: source1.payload, source2 }) ),
)
我们可以在resultSelector方法参数中为source1
和source2
添加适当的类型,在此处构造的对象中传递。
但现在我们必须做到以下几点:
source$.pipe(
withLatestFrom(source2$),
map(([source1, source2]) => ({ source1, source2 }) ),
)
这样做我们无法在数组参数中的source1和source2上添加类型。然后输入会丢失,IDE不会在.payload
上建议source1
。
如何使用新语法添加数组参数的正确输入?
答案 0 :(得分:8)
您可以像添加元组一样添加它:
source$.pipe(
withLatestFrom(source2$),
map(([source1, source2]: [TypeA, TypeB]) => ({ source1, source2 }) ),
)
虽然我很惊讶你没有自动打字,我认为它确实传播了它们......