首页/开发/代码质量与评审速查/eslint-disable 的合理边界
规范与静态检查65 条

eslint-disable 的合理边界

禁用注释是技术债:优先行级禁用(eslint-disable-next-line)并写明原因,避免文件级整片禁用;必要时统计禁用数量并定期审计。

禁用注释的合理边界

禁用注释是技术债的一种形式:它让检查在这一处失效。合理的用法是行级禁用并写明原因;文件顶部的整体禁用会让整份文件脱离检查,新引入的问题也一起被放过。团队最好定期统计禁用数量并做审计。

基本信息

粒度行级优于块级,块级优于文件级
写法要求必须写明原因,跟在双连字符之后
审计手段统计禁用注释数量并按目录排序
替代方案修根因,或在配置里按路径排除

典型使用场景

  • 第三方类型无法满足规则:行级禁用并注明原因
  • 生成代码或兼容性代码:优先用配置里的路径排除
  • 规则本身不适用于某处:考虑改用更合适的规则配置
  • 临时绕过:写明关联任务编号并限期清理
  • 审计存量:按目录统计禁用数量,多的先治理

判断该不该禁用

  • 这条规则是否真的无法满足
  • 能否通过调整配置而不是就地禁用解决
  • 禁用范围能否缩小到一行
  • 是否留下了原因与清理时机

写法示例

写法示例
// eslint-disable-next-line no-console -- 启动横幅必须输出到控制台
console.log(banner);

// 不推荐:文件顶部整份禁用
// /* eslint-disable */

粒度与影响

粒度影响范围建议
行级单行首选,必须写原因
块级一段代码谨慎使用,范围尽量小
文件级整份文件尽量不用,改配置排除更清晰

在评审中怎么用

  • 看到禁用注释先确认是否尝试过调整配置
  • 要求补上原因与关联任务编号
  • 定期统计各目录的禁用数量,纳入技术债台账
  • 禁用集中出现的模块,说明规则与代码风格不匹配
在评审中的用法:看到禁用注释先问原因与清理时机,缺了这两项就要求补齐再谈合并。
禁用注释也是一种信号:同一处被反复禁用,往往说明规则本身或这段设计需要重新讨论。
文件顶部的整体禁用:整份文件不再受检查,新问题也一并放行。

易错点

  • 文件级禁用之后整份文件不受检查:新问题也一起被放过
  • 禁用不带原因:后来人不敢删,债务越积越多
  • 用禁用注释代替修根因:根因仍在,换个文件再犯一次
  • 禁用数量从不统计:积累到几百处时已经无从治理

数据来源与参考

  • ESLint 文档 · Disabling rules with inline comments
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌