我不确定如何执行此操作,但是如何将typeof XXX
传递给方法参数,并说返回类型是该方法的实例?
所以,我有这种方法:
public getComponent<T>(component: typeof Behavior): Parameters<(c: T) => T> {}
然后我就这样使用它:
class Main {
getComponent() {
// Finds an instance and returns it
}
}
class Behavior {}
class Item extends Behavior {}
let result = (new Main()).getComponent(Item)
TypeScript然后说result
是Behavior
的实例,而不是Item
的实例。使结果成为Item
实例的正确方法是什么?
答案 0 :(得分:1)
这是您想要的吗?
getComponent<T extends Behavior>(component: new(...args: any[]) => T): T {}