我正在创建一个函数,该函数接收类数组,实例化所有类并返回实例数组。我想要一种使用类型变量来键入该数组的方法,以便返回的数组可以正确键入。
我想要的与TypeScript文档上的示例几乎相同:https://www.typescriptlang.org/docs/handbook/generics.html#using-class-types-in-generics
class BeeKeeper {
hasMask: boolean;
}
class ZooKeeper {
nametag: string;
}
class Animal {
numLegs: number;
}
class Bee extends Animal {
keeper: BeeKeeper;
}
class Lion extends Animal {
keeper: ZooKeeper;
}
function createInstance<A extends Animal>(c: new () => A): A {
return new c();
}
createInstance(Lion).keeper.nametag; // typechecks!
createInstance(Bee).keeper.hasMask; // typechecks!
但是我需要类似createInstances
const [lionClass, beeClass] = createInstances([Lion, Bee]);
我希望返回的数组的类型与作为参数传递的数组的类型相匹配。
编辑: 我知道我可以手动输入它(就像这个人喜欢的问题一样)
const [lionClass, beeClass]: [Lion, Bee] = createInstances([Lion, Bee]);
但是我想动态地做。