Typescript 如何对泛型参数值使用typeof?

Typescript 如何对泛型参数值使用typeof?,typescript,typescript-generics,Typescript,Typescript Generics,我想定义一个接口,在这里我传递一个泛型参数,然后同时使用传递的值及其类型 这与我想要实现的目标类似: 接口组件支持任何>{ 参数:构造函数参数[0] 提交:(op:T)=>void } 因为参数是一个值,所以会出现此错误: “T”仅指类型,但在此处用作值。ts(2693) 我可以定义此接口并将其用作: 接口组件支柱{ 提交:(op:T)=>void } 键入CustomComponentProps=ComponentProps//我可以直接传递该类 或 接口组件支持任何>{ 参数:构造函数参

我想定义一个接口,在这里我传递一个泛型参数,然后同时使用传递的值及其类型

这与我想要实现的目标类似:

接口组件支持任何>{
参数:构造函数参数[0]
提交:(op:T)=>void
}
因为参数是一个值,所以会出现此错误:

“T”仅指类型,但在此处用作值。ts(2693)

我可以定义此接口并将其用作:

接口组件支柱{
提交:(op:T)=>void
}
键入CustomComponentProps=ComponentProps//我可以直接传递该类

接口组件支持任何>{
参数:构造函数参数[0]
}
键入CustomComponentProps=ComponentProps//我需要传递类的类型
这可能是一个我还无法理解的简单问题,但是否可以将类本身作为泛型参数传递,然后在接口中获取其类型,而不需要将它们作为
组件props
单独传递

是否可以将类本身作为泛型参数传递,然后在接口中获取其类型,而不需要单独传递它们

可以使用获取类类型的实例类型:

class ClassA {
  constructor(public a: string) { }
}

interface ComponentProps<T extends new (...args: any) => any> {
  params: ConstructorParameters<T>[0]
  onSubmit: (op: InstanceType<T>) => void
}

declare const props: ComponentProps<typeof ClassA>
props.params // params: string
props.onSubmit(new ClassA("foo") ) // onSubmit: (op: ClassA) => void
A类{
构造函数(公共a:string){}
}
接口组件支持任何>{
参数:构造函数参数[0]
onSubmit:(op:InstanceType)=>void
}
声明常量道具:组件道具
props.params//params:string
props.onSubmit(新的ClassA(“foo”)//onSubmit:(op:ClassA)=>void

非常感谢<代码>实例类型是我所需要的。有时很难在Google中找到typescript的实用程序,或者我没有使用正确的关键字来查找它们。:)