【发布时间】:2020-12-16 09:46:56
【问题描述】:
我正在尝试创建一个函数,将 Observable 的对象(它本身是 observable 的集合)转换为 Observables 的对象
当前的实现如下所示:
type Inputs = {[inputName: string]: Observable<unknown>}
export const transform = <Inp extends Inputs, Keys extends keyof Inputs>(
inputs$: Observable<Inp>,
inputNames: Keys[],
) => {
const cachedSinks$ = inputs$.pipe(share())
return inputNames.reduce((result, inpName) => {
result[inpName] = cachedSinks$
.pipe(switchMap(sinks => sinks[inpName]))
return result
},
{} as {[K in Keys]: Inp[Keys]})
}
但是,我在 result[inpName] = cachedSinks$ 和 TS2322: Type 'Observable >' is not assignable to type 'Inp[Keys]'. 行出现错误,我不明白为什么会发生这种情况,因为 Inp[Keys] 也是一个 Observable
【问题讨论】:
标签: typescript rxjs