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
x |= y | x = x | y
规则详细信息
此规则要求或禁止在可能的情况下使用赋值运算符简写。
该规则适用于上表中列出的运算符。它不报告逻辑赋值运算符 &&=
、||=
和 ??=
,因为它们的短路行为不同于其他赋值运算符。
选项
此规则有一个字符串选项
"always"
(默认)在可能的情况下要求使用赋值运算符简写"never"
禁止使用赋值运算符简写
always
此规则使用默认 "always"
选项的不正确代码示例
在游乐场中打开
/*eslint operator-assignment: ["error", "always"]*/
;
;
;
;
此规则使用默认 "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"]*/
;
;
此规则使用 "never"
选项的正确代码示例
在游乐场中打开
/*eslint operator-assignment: ["error", "never"]*/
x = x + y;
x.y = x.y / a.b;
何时不使用它
使用赋值运算符简写是一个风格选择。保持此规则关闭将允许开发人员在逐案基础上选择哪种风格更易读。
版本
此规则在 ESLint v0.10.0 中引入。