Spec-Zone.ru › ESLint

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" по умолчанию:

Открыть в Playground
/*eslint operator-assignment: ["error", "always"]*/

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

Примеры правильного кода для этого правила со значением параметра "always" по умолчанию:

Открыть в Playground
/*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":

Открыть в Playground
/*eslint operator-assignment: ["error", "never"]*/

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

Примеры правильного кода для этого правила со значением параметра "never":

Открыть в Playground
/*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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API