如何使用 LatestFrom 从 rxjs 6 键入数组映射参数
How to type array map arguments from rxjs 6 withLatestFrom
在 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 不会在 source1
上建议 .payload
。
如何使用新语法为数组参数添加正确的类型?
您可以像添加元组一样添加它:
source$.pipe(
withLatestFrom(source2$),
map(([source1, source2]: [TypeA, TypeB]) => ({ source1, source2 }) ),
)
虽然我很惊讶你没有在上面自动打字,但我认为它确实传播了它们...
在 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 不会在 source1
上建议 .payload
。
如何使用新语法为数组参数添加正确的类型?
您可以像添加元组一样添加它:
source$.pipe(
withLatestFrom(source2$),
map(([source1, source2]: [TypeA, TypeB]) => ({ source1, source2 }) ),
)
虽然我很惊讶你没有在上面自动打字,但我认为它确实传播了它们...