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

如何编写.d.ts文件为AbortSignal添加timeout静态属性?

解决TypeScript中AbortSignal.timeout类型缺失的问题

TypeScript的DOM内置类型里缺少AbortSignal.timeout的定义时,不能直接声明同名命名空间——因为AbortSignal在lib.dom.d.ts中是以接口+构造函数接口的形式存在的,直接声明命名空间会触发重复标识符错误。

正确的做法是通过声明合并扩展AbortSignal的构造函数接口,添加静态方法timeout的类型定义:

declare global {
  interface AbortSignalConstructor {
    timeout(milliseconds: number): AbortSignal;
  }
}

// 必须添加这行,让文件被识别为模块,避免全局作用域冲突
export {};

关键说明:

  • AbortSignalConstructor是TypeScript用来描述AbortSignal构造函数类型的内置接口,扩展它就能为构造函数添加静态方法的类型定义
  • 用declare global包裹是为了在全局作用域下扩展内置接口
  • export {}不可省略,否则TypeScript会将该文件视为全局脚本,可能导致类型合并异常

将上述代码保存为abort-signal-timeout.d.ts,并确保该文件被包含在你的tsconfig.json的include配置中,TypeScript就能识别AbortSignal.timeout的类型了。

内容的提问来源于stack exchange,提问作者Taymon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:35:34