Typescript 类类型的dict作为参数,实例的dict作为返回类型
我想写一个函数,它接受一个值为类的字典作为参数,在输出中我想得到一个带有实例的字典 e、 gTypescript 类类型的dict作为参数,实例的dict作为返回类型,typescript,Typescript,我想写一个函数,它接受一个值为类的字典作为参数,在输出中我想得到一个带有实例的字典 e、 g 如何将类型写入函数f以获得强类型?是的,您可以使用映射类型和内置条件类型InstanceType来完成此操作 classes C1, C2 function f: ({ name1: C1, name2: C2 }): ({ name1: new C1() name2: new C2() }) class C1 { c1!: number} class C2{ c2!
如何将类型写入函数f以获得强类型?是的,您可以使用映射类型和内置条件类型InstanceType来完成此操作
classes C1, C2
function f: ({
name1: C1,
name2: C2
}): ({
name1: new C1()
name2: new C2()
})
class C1 { c1!: number}
class C2{ c2!: number }
type AllInstance<T extends Record<string, new (...a: any[]) => any>> = {
[P in keyof T]: InstanceType<T[P]>
}
function f<T extends Record<string, new () => any>>(o: T): AllInstance<T> {
const result = {} as AllInstance<T>
for(var key of Object.keys(o) as Array<keyof T>) {
result[key] = new o[key]()
}
return result;
}
let o = f({ C1,C2 })
o.C1.c1;
o.C2.c2;