8

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

interface TypeA {
  payload: any;
}

source$.pipe(
  withLatestFrom(source2$, (source1: TypeA, source2: TypeB) => 
       ({ payload: source1.payload, source2 }) ),
)

我们可以在 resultSelector 方法参数中为 和 添加适当的类型,source1source2在此处在构造对象中传递。

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

source$.pipe(
  withLatestFrom(source2$),
  map(([source1, source2]) => ({ source1, source2 }) ),
)

这样做我们无法在数组参数中的 source1 和 source2 上添加类型。然后输入会丢失,例如 IDE 不建议.payload打开source1

如何能够使用新语法添加带有数组参数的正确类型?

4

1 回答 1

18

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

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

虽然我很惊讶你没有在上面自动打字,但我认为它确实传播了它们......

于 2018-05-24T22:15:53.510 回答