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

ESLint中如何扩展单个规则而非完全覆盖父配置规则?

ESLint子配置扩展父规则参数的可行方案

可行,但ESLint本身不支持自动增量扩展规则参数,需要手动继承父级参数后再修改

具体实现方式

ESLint的配置继承逻辑中,子配置的同名规则会直接覆盖父级规则。要实现"保留原有参数+新增/扩展内容"的效果,需要手动复制父级规则的完整参数结构,再在其基础上修改:

  1. 先明确父级规则的完整参数配置,确保获取到所有原有项
  2. 在子配置中通过extends继承父级配置,再针对目标文件类型重新定义该规则,完整保留父级的参数内容,再添加新参数或扩展数组项

示例代码

父级根目录.eslintrc.json:

{
  "overrides": [
    {
      "files": ["*.ts"],
      "rules": {
        "@my-rule-name": ["error", {
          "param0": "value0",
          "param1": true,
          "paramArray": ["item1", "item2"]
        }]
      }
    }
  ]
}

子目录app/.eslintrc.json:

{
  "extends": "../.eslintrc.json",
  "overrides": [
    {
      "files": ["*.ts"],
      "rules": {
        "@my-rule-name": ["error", {
          // 保留父级原有参数
          "param0": "value0",
          "param1": true,
          // 扩展数组,添加新元素
          "paramArray": ["item1", "item2", "item3", "item4"],
          // 新增参数
          "param2": "new-custom-value"
        }]
      }
    }
  ]
}

注意事项

  • 这种方式属于"手动继承",如果父级规则的参数后续发生变更,子配置需要手动同步更新,否则会保持旧的参数内容
  • 规则的第一个参数是错误级别(如"error"、"warn"),子配置中可根据需求调整,但参数对象部分需完整保留原有项再扩展

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 03:07:05