You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:38:22