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

TypeScript ESLint 是否存在可警告同名接口重复定义的规则

对应ESLint规则说明

TypeScript 原生支持接口声明合并特性,允许同一作用域下多次定义同名接口、最终自动合并所有成员。如果需要检测并警告这类重复定义同名接口的行为,可以直接使用 @typescript-eslint 插件集提供的对应规则,不需要额外自研规则。

  • 规则选择:不要使用ESLint原生的no-redeclare规则,该规则不识别TS语法,会出现误判或漏判。请使用@typescript-eslint/no-redeclare,这是专门适配TS语法的重复声明检测规则,默认就会把同作用域下的同名接口重复定义判定为违规。
  • 配置方法:在ESLint配置文件中关闭原生规则,开启TS适配版本即可,示例配置如下:
{
  "rules": {
    "no-redeclare": "off",
    "@typescript-eslint/no-redeclare": ["warn", {
      "ignoreDeclarationMerge": false
    }]
  }
}

配置项说明:ignoreDeclarationMerge默认值为false,此时所有同名接口、同名类型的重复声明都会触发警告;如果设置为true,规则会放行所有TS语法允许的声明合并场景(包括函数重载、命名空间和类的合并等),按需调整即可。

配置生效后,你给出的示例代码:

export interface Person {
  fullName: string;
}

export interface Person {
  name: string;
}

会直接抛出警告,提示标识符Person重复定义。

如果需要更严格的类型定义规范,还可以搭配@typescript-eslint/consistent-type-definitions规则,统一项目内类型定义的写法风格,从根源减少零散的同名声明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:21:26