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中引入。