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

请求新增ESLint规则检测嵌套变量赋值,现有规则无法适配

ESLint暂无检测函数参数中嵌套变量赋值的规则,这类常见错误无法被覆盖

目前ESLint没有规则能检测函数参数中的嵌套变量赋值,但这类错误在开发中非常常见——比如示例代码里,调用断言函数时误将比较操作写成赋值,导致变量被意外修改:

function assert (cond) {
   if (!cond) {
      throw new Error("Assertion failed.");
   }
}

function test () {
   let var1 = 1;
   assert(var1 = 2);         // 错误:这里把2赋值给了var1!
   console.log(var1); // 最终输出2,而非预期的断言失败
}

针对这个问题,我做过以下尝试:

  • 曾在GitHub提交新增规则的提议,但平台规定只有涉及ECMAScript新特性的提议才会被处理,因此无法推进。
  • 排查了ESLint现有规则,no-cond-assign和no-return-assign虽与赋值检测相关,但前者仅覆盖条件语句中的赋值场景,后者针对返回语句中的赋值,均无法扩展到函数参数里的赋值情况。

内容的提问来源于stack exchange,提问作者Christian d'Heureuse

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:20:50