InstanceType 是 TypeScript 中的一个内置类型操作符。它用来获取一个类构造函数的实例类型。
具体而言,给定一个类的构造函数类型 T,InstanceType 将返回该类的实例类型。
class MyClass {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
type MyInstance = InstanceType<typeof MyClass>;
let instance: MyInstance = new MyClass("John", 25);
console.log(instance); // 输出:MyClass { name: "John", age: 25 }
在上面的示例中,typeof MyClass 获取到 MyClass 的构造函数类型。然后,InstanceType 返回 MyClass 的实例类型,即 { name: string; age: number; }。
通过将 InstanceType 赋给变量 MyInstance,我们可以使用 MyInstance 类型定义变量 instance,并实例化 MyClass 类的对象。最后,打印 instance 将会输出该对象的属性值。
InstanceType 在 TypeScript 中非常有用,可以用于对类的实例进行类型推断或定义通用函数,以便能够接受任意类的实例作为参数。