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

如何配置ESLint规则捕获误将赋值=写为全等===的代码错误

检测独立语句中误写===代替赋值的ESLint方案

原生内置规则(无需安装第三方插件)

ESLint核心自带的no-unused-expressions规则可完全覆盖该检测场景。
误写的x === 10;属于独立存在的全等比较表达式:执行后既不会修改变量值,也不会将比较结果交付给任何业务逻辑、产生可观测的副作用,属于典型的无效未使用表达式,开启该规则后会直接抛出错误。
推荐配置:

{
  "rules": {
    "no-unused-expressions": ["error", {
      "allowShortCircuit": false,
      "allowTernary": false,
      "allowTaggedTemplates": false
    }]
  }
}

该规则不会误报合法的比较逻辑:位于if条件、三元表达式、逻辑短路判断、函数入参、return语句中的===比较不会被拦截,仅针对作为独立语句存在、无实际运行效果的表达式告警,完全匹配误将赋值写为全等比较的问题场景。
若项目使用TypeScript,替换为同功能的@typescript-eslint/no-unused-expressions规则即可,该版本适配TS语法,不会对合法的类型相关表达式产生误报。

严格场景增强方案

如果需要更高的检测精准度,避免其他合法表达式的放行配置漏检该类错误,可通过ESLint内置的no-restricted-syntax自定义语法检测规则,专门拦截独立成行的相等/全等比较:

{
  "rules": {
    "no-restricted-syntax": ["error",
      {
        "selector": "ExpressionStatement > BinaryExpression[operator='===']",
        "message": "独立语句中的===比较无实际效果,检查是否误将赋值=写为全等==="
      },
      {
        "selector": "ExpressionStatement > BinaryExpression[operator='==']",
        "message": "独立语句中的==比较无实际效果,检查是否误将赋值=写为相等=="
      }
    ]
  }
}

该自定义规则仅对独立成句的==/===比较告警,不会影响其他合法写法,常规业务场景下误报率为0。

补充说明

无需额外安装专门检测比较操作符的第三方插件,这类错误的核心特征是代码执行后无任何有效输出,上述原生规则已经可以实现零漏报的检测效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.07 16:15:42