Eslint
规则 | Rules

operator-assignment

在可能的情况下要求或不允许分配操作员速记(操作员分配)

在命令行上的--fix选项可以自动修复一些被这条规则反映的问题。

JavaScript 提供了结合变量赋值和一些简单的数学运算的速记运算符。例如,x = x + 4可以缩短为x += 4。支持的简写形式如下:

Shorthand | Separate -----------|------------ x += y | x = x + y x -= y | x = x - y x *= y | x = x * y x /= y | x = x / y x %= y | x = x % y x <<= y | x = x << y x >>= y | x = x >> y x >>>= y | x = x >>> y x &= y | x = x & y x ^= y | x = x ^ y x |= y | x = x | y

规则细节

在可能的情况下,此规则要求或不允许赋值运算符速记。

选项

该规则具有单个字符串选项:

  • "always" (默认)在可能的情况下需要赋值运算符速记

  • "never" 不允许赋值运算符速记

always

此规则的默认"always"选项错误代码示例:

/*eslint operator-assignment: ["error", "always"]*/ x = x + y; x = y * x; x[0] = x[0] / y; x.y = x.y << z;

具有默认"always"选项的此规则的正确代码示例:

/*eslint operator-assignment: ["error", "always"]*/ x = y; x += y; x = y * z; x = (x * y) * z; x[0] /= y; x[foo()] = x[foo()] % 2; x = y + x; // `+` is not always commutative (e.g. x = "abc")

never

此规则的错误代码示例包含以下"never"选项:

/*eslint operator-assignment: ["error", "never"]*/ x *= y; x ^= (y + z) / foo(

此规则的正确代码示例包含以下"never"选项:

/*eslint operator-assignment: ["error", "never"]*/ x = x + y; x.y = x.y / a.b;

何时不使用它

操作员的使用分配速记是一种文体选择。如果关闭此规则,开发人员可以根据具体情况选择哪种风格更具可读性。

版本

该规则在 ESLint 0.10.0中引入。

资源