浏览 81
扫码
ConstructorParameters
type ConstructorParameters<T extends new (...args: any) => any> = T extends new (...args: infer P) => any ? P : never;
接下来我们将通过一个示例来说明如何使用ConstructorParameters工具类型:
class Person {
constructor(name: string, age: number) {
console.log(`${name} is ${age} years old.`);
}
}
type PersonConstructorParams = ConstructorParameters<typeof Person>; // ["string", "number"]
const personParams: PersonConstructorParams = ["John", 25];
const person = new Person(...personParams); // John is 25 years old.
在上面的示例中,我们定义了一个名为Person的类,该类有一个构造函数,构造函数接受两个参数:name和age。然后我们使用ConstructorParameters工具类型获取了Person类构造函数的参数类型,得到了一个元组类型[“string”, “number”]。最后,我们定义了一个名为personParams的变量,赋值为[“John”, 25],然后通过解构赋值的方式将参数传递给Person类的构造函数,创建了一个实例person。
总之,ConstructorParameters工具类型可以方便地获取构造函数的参数类型,帮助我们在编写类型安全的代码时更加便捷。