TypeScript中new(...args) => T类型注解含义及文档位置咨询
嘿,这个问题我熟!你看到的new(...args) => T是TypeScript里用来描述构造函数类型的语法,我给你掰扯清楚:
一、
new(...args) => T的具体含义 这是TypeScript的构造签名类型注解,专门用来定义「可以被new关键字调用的构造函数」:
new:明确标注这个函数是构造器,必须通过new操作符调用(比如new MyClass()),而不是直接执行函数(比如MyClass());(...args):表示这个构造函数可以接收任意数量、任意类型的参数。如果要限制参数的类型和数量,也可以写成具体的形式,比如new(name: string, age: number) => User;=> T:表示调用这个构造函数后,会返回一个类型为T的实例——这里的T是泛型参数,用来指代具体的实例类型(比如User、Date这类类的类型)。
举个实际代码例子,你就能明白怎么用:
// 定义一个通用的构造函数类型 type Constructor<T> = new (...args: any[]) => T; // 写一个工具函数,接收构造函数和参数,返回实例 function createInstance<T>(ctor: Constructor<T>, ...args: any[]): T { return new ctor(...args); } // 用这个工具函数创建Date实例 const myDate = createInstance(Date, 2024, 5, 15); // myDate的类型会被推断为Date,完全符合预期
二、相关文档的位置
这个语法属于TypeScript函数类型体系里的「构造签名」部分,你可以在TypeScript官方文档的Functions章节下找到关于构造签名的详细说明,里面不仅有基础用法,还有结合泛型、接口的进阶示例。
内容的提问来源于stack exchange,提问作者user20416
相关产品推荐
相关产品推荐

