ESLint 配置中 overrides 作用域导致规则未生效的解决方案

秋磊酱_5468

秋磊酱_5468

2026-02-24

975人浏览

原创

ESLint 配置中 overrides 作用域导致规则未生效的解决方案

当 eslint 规则(如 @typescript-eslint/no-misused-promises)在根 rules 中设为 "off" 却仍被触发时,极可能因 overrides 配置块中重复启用了该规则——需在对应 overrides 内显式关闭。

当 eslint 规则(如 @typescript-eslint/no-misused-promises)在根 rules 中设为 "off" 却仍被触发时,极可能因 overrides 配置块中重复启用了该规则——需在对应 overrides 内显式关闭。

在 TypeScript 项目中使用 ESLint 时,一个常见却易被忽视的问题是:明明已在 .eslintrc.js 的顶层 rules 中将某条规则设为 "off",但该规则警告依然出现。典型案例如 @typescript-eslint/no-floating-promises 或 @typescript-eslint/no-misused-promises ——它们常由 @typescript-eslint/recommended-type-checked 等共享配置自动启用,而这类配置往往通过 overrides 块注入,优先级高于顶层 rules。

ESLint 的配置合并机制规定:overrides 中定义的 rules 会完全覆盖(而非合并)顶层 rules 的同名设置。因此,即使你在根配置中写了:

module.exports = {
  rules: {
    "@typescript-eslint/no-floating-promises": "off",
  },
  // ... 其他配置
};

只要存在如下 overrides(常见于 TypeScript 项目模板):

overrides: [
  {
    files: ["**/*.ts"],
    extends: ["@typescript-eslint/recommended-type-checked"],
  }
]

那么 @typescript-eslint/recommended-type-checked 所含的默认规则(包括 "error" 级别的 no-floating-promises)就会在 .ts 文件中生效,彻底忽略顶层的 "off" 设置。

FILM
FILM

一款基于帧插值技术的AI视频生成工具,可以根据已有的两张图像生成中间画面,用于制作平滑的动态过渡效果。

下载

✅ 正确做法是:在触发该规则的 overrides 块内,显式重写对应规则:

module.exports = {
  // 根规则(对非 TS 文件等生效)
  rules: {
    // 可保留通用规则
  },

  overrides: [
    {
      files: ["**/*.ts", "**/*.tsx"],
      extends: ["@typescript-eslint/recommended-type-checked"],
      parserOptions: {
        project: "./tsconfig.json",
      },
      rules: {
        // ✅ 关键:在此处关闭,覆盖继承的规则
        "@typescript-eslint/no-floating-promises": "off",
        "@typescript-eslint/no-misused-promises": "off",
        // 如需部分启用,也可设为 "warn" 或自定义选项
        // "@typescript-eslint/no-floating-promises": ["warn", { ignoreVoid: true }],
      },
    },
  ],
};

⚠️ 注意事项:

  • overrides 是数组,需确保目标 override 块的 files 模式精确匹配你的源文件(如 **/*.ts 不匹配 .tsx,需补充);
  • 若使用多个 extends(如同时扩展 eslint:recommended 和 @typescript-eslint),检查所有 overrides 是否都需修正;
  • 运行 npx eslint --print-config path/to/file.ts 可查看 ESLint 实际解析后的完整配置,快速定位规则来源;
  • 清除缓存(--cache --cache-location .eslintcache)或重启编辑器语言服务器仅解决临时状态问题,无法绕过配置优先级逻辑。

总结:ESLint 的 overrides 不是“补充”,而是“作用域内重置”。要禁用某条被 extends 启用的规则,必须在同一 overrides 块内显式声明其值——这是配置可预测性的核心原则,也是调试规则失效问题的首要排查路径。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

作用域

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

2026.02.13

332

17

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

2026.02.25

540

17

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

2026.03.13

391

19

TypeScript 全栈开发进阶指南
TypeScript 全栈开发进阶指南

面向有 JavaScript 基础的开发者,深入讲解 TypeScript 的类型系统与全栈开发实践。

2026.06.03

306

29

TypeScript Node.js 全栈工程化与Monorepo架构实践
TypeScript Node.js 全栈工程化与Monorepo架构实践

本专题围绕 TypeScript 在 Node.js 全栈开发中的工程化实践展开,系统讲解 Monorepo 架构设计、包管理策略、模块复用机制以及服务端与前端统一类型系统的构建方法。通过真实项目案例,帮助开发者提升大型全栈项目的可维护性与协作效率。

2026.06.16

718

8

python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end='\n', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.27

3280

5

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

2026.02.03

269

24

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

1049

5

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.25

3320

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
JavaScript高级框架设计视频教程
JavaScript高级框架设计视频教程

共22课时 | 4.4万人学习

前端学科面试题大全(第一季)
前端学科面试题大全(第一季)

共26课时 | 3.8万人学习