带泛型的构造函数
约 223 字小于 1 分钟
2025-05-19
我们可以借助 泛型 和 剩余参数...args
来定义一个格式通用的构造函数。
主要用于动态创建类的实例。
// 定义一个带泛型的构造函数类型
type CommonConstructor<T> = new (...args: any[]) => T;
// 用于动态创建类实例的工厂函数
// @param ctor 构造函数
// @param args 构造函数的参数列表
// @returns 构造函数的实例
function createInstance<T>(ctor: CommonConstructor<T>, ...args: any[]): T {
return new ctor(...args);
}
// 需要被动态创建的类
class Car {
constructor(public model: string) {}
drive(): void {
console.log(`Driving ${this.model}`);
}
}
// 实例 1
const myCar = createInstance(Car, "Tesla Model 3");
myCar.drive(); // Output: Driving Tesla Model 3
// 需要被动态创建的类
class Person {
constructor(public name: string, public age: number) {}
speak(): void {
console.log(`Hello! I'm ${this.name}, ${this.age} years old.`);
}
}
// 实例 2
const xiaoming = createInstance(Person, "Xiaoming", 18);
xiaoming.speak(); // Output: Hello! I'm Xiaoming, 18 years old.
更新日志
2025/8/24 08:17
查看所有更新日志
e7112
-1于