在Typescript中,如何将泛型容器类型的对象合并到对象类型的泛型容器中?
我试图创建一个函数,将在Typescript中,如何将泛型容器类型的对象合并到对象类型的泛型容器中?,typescript,rxjs,Typescript,Rxjs,我试图创建一个函数,将rxjs.Observables的对象合并为单个Observable 比如说, 假设我有一张观察图,如下所示 const fooObservable$: Observable<Foo> = createFooObservable(); const barObservable$: Observable<Bar> = createBarObservable(); // Type of observables would be // { foo: Obs
rxjs.Observable
s的对象合并为单个Observable
比如说,
假设我有一张观察图,如下所示
const fooObservable$: Observable<Foo> = createFooObservable();
const barObservable$: Observable<Bar> = createBarObservable();
// Type of observables would be
// { foo: Observable<Foo>, bar: Observable<Bar> }
// And, `keyof typeof observables` would be
// "foo" | "bar"
const observables = {
foo: fooObservable$,
bar: barObservable$,
};
const foooobservable$:Observable=createfoooobservable();
const barObservable$:Observable=createBarObservable();
//可观测的类型是
//{foo:Observable,bar:Observable}
//而且,`keyof typeof observates`将是
//“foo”|“bar”
常量观测值={
foo:foo可观测$,
巴:可观测气压$,
};
那么,我怎样才能创建一个合并如下所示的可观察对象的函数呢
// typeof merged$ would be
// Observable<{ foo: Foo, bar: Bar }>
const merged$ = merge(observables);
//合并的$的类型将是
//可观察
const merged$=合并(可观测);
我不知道如何定义函数merge()
如果有好的方法,请给我一个答案。在本例中,
M
是可观察的(但它确实可以应用于任何泛型类型):
M类{
价值:A;
}
类型未打包=T扩展M?U:从来没有;
类型合并正文={
[P in keyof T]:未包装
}
函数合并(t:t):M{
...
}
然后举一个例子:
let o = {
a: new M<number>(),
b: new M<string>()
}
const m = merge(o)
// type checks!
let n: number = m.value.a
设o={
a:新的M(),
b:新的M()
}
常数m=合并(o)
//打字检查!
设n:number=m.value.a
let o = {
a: new M<number>(),
b: new M<string>()
}
const m = merge(o)
// type checks!
let n: number = m.value.a