【发布时间】:2022-08-10 21:24:58
【问题描述】:
class ClassOne {
property1 = true;
}
type Instantiable = { new(...args: any[]): ClassOne };
是否可以直接从Instantiable 类型中提取ClassOne?如果是这样,那怎么办?
标签: typescript
class ClassOne {
property1 = true;
}
type Instantiable = { new(...args: any[]): ClassOne };
是否可以直接从Instantiable 类型中提取ClassOne?如果是这样,那怎么办?
标签: typescript
TypeScript 提供了一个名为 InstanceType 的实用程序类型。你可以像这样使用它:
class ClassOne {
property1 = true;
}
type Instantiable = { new(...args: any[]): ClassOne };
type T = InstanceType<Instantiable>;
在后台,它在条件类型中使用 infer 关键字:
type InstanceType<T extends abstract new (...args: any) => any> = T extends abstract new (...args: any) => infer R ? R : any
【讨论】: