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

如何通过声明文件重写原生Error类的cause属性类型?

重写原生Error接口的cause类型

要把原生Error类的cause属性从默认的unknown类型改成自定义枚举类型,你可以通过TypeScript的声明文件结合接口合并特性实现,步骤如下:

  • 先定义你的自定义枚举类型:
// 业务相关的错误原因枚举
enum ErrorCause {
  NetworkFailure = "NETWORK_FAILURE",
  InvalidInput = "INVALID_INPUT",
  NotFound = "NOT_FOUND"
}
  • 创建一个.d.ts声明文件(比如命名为error.d.ts),在里面重新声明Error接口并覆盖cause的类型:
// error.d.ts
interface Error {
  cause: ErrorCause;
}
  • 如果是在模块文件中编写声明,需要用declare global包裹接口声明,并添加export {}确保文件被识别为模块:
// error.d.ts
declare global {
  interface Error {
    cause: ErrorCause;
  }
}

export {};

完成后,TypeScript会将所有Error实例的cause属性类型识别为你定义的ErrorCause枚举,而非默认的unknown。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:03:09