Typescript 根据参数获取返回类型

Typescript 根据参数获取返回类型,typescript,Typescript,我不知道如何做到这一点,但如何将XXX的typeofxxx传递给一个方法参数,并说返回类型是该方法的一个实例 所以,我有这个方法: public getComponent<T>(component: typeof Behavior): Parameters<(c: T) => T> {} 然后,TypeScript说,result是行为的一个实例,而不是项的一个实例。让结果成为项的实例的正确方法是什么?这是您想要的吗 getComponent(component:

我不知道如何做到这一点,但如何将XXX的
typeofxxx
传递给一个方法参数,并说返回类型是该方法的一个实例

所以,我有这个方法:

public getComponent<T>(component: typeof Behavior): Parameters<(c: T) => T> {}
然后,TypeScript说,
result
行为的一个实例,而不是
项的一个实例。让结果成为
项的实例的正确方法是什么?

这是您想要的吗

getComponent(component:new(…args:any[])=>T:T{}

getComponent
查找从数组传入的类型的实例并返回该实例。是的,但是,
类型为“typeof Item”的参数不能分配给类型为“new()=>Item”的参数。
在这一行:(new Main())。getComponent(Item)似乎在这里工作:经过一些测试,我明白了为什么会这样。我的类
Behavior
中有一个构造函数:
公共构造函数(val:any){}
导致了错误。我已经更新了答案,允许使用任何形式的构造函数
class Main { 
  getComponent() {
    // Finds an instance and returns it
  } 
}

class Behavior {}
class Item extends Behavior {}


let result = (new Main()).getComponent(Item)