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.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/operator-assignment