Skip to content
← Back to rules

eslint/operator-assignment 风格

An auto-fix is available for this rule.

它的作用

此规则在可能的情况下要求或禁止使用赋值运算符简写形式。 它鼓励使用诸如 +=-=*=/= 等简写赋值运算符, 以使代码更加简洁和易读。

为什么这是不好的?

JavaScript 提供了将变量赋值与简单数学运算结合的简写运算符。 未能使用这些简写运算符可能导致代码过于冗长, 并且被视为错失了提升清晰度和简洁性的机会。

示例

使用默认 always 选项时,错误 的代码示例:

js
x = x + y;
x = y * x;
x[0] = x[0] / y;
x.y = x.y << z;

使用默认 always 选项时,正确 的代码示例:

js
x = y;
x += y;
x = y * z;
x = x * y * z;
x[0] /= y;
x[foo()] = x[foo()] % 2;
x = y + x; // `+` 不总是满足交换律(例如:x = "abc")

使用 never 选项时,错误 的代码示例:

js
x *= y;
x ^= (y + z) / foo();

使用 never 选项时,正确 的代码示例:

js
x = x + y;
x.y = x.y / a.b;

配置

此规则接受以下字符串值之一:

"always"

在可能的情况下强制使用赋值运算符简写。

"never"

禁止使用赋值运算符简写。

如何使用

要通过配置文件或 CLI 启用 此规则,可以使用:

json
{
  "rules": {
    "operator-assignment": "error"
  }
}
bash
oxlint --deny operator-assignment

参考资料