Spec-Zone.ru › ESLint

no-multi-assign

Запрещает использовать цепочки выражений присваивания

Цепочки присваивания переменных могут привести к неожиданным результатам и затруднить чтение кода.

(function() {
    const foo = bar = 0; // Did you mean `foo = bar == 0`?
    bar = 1;             // This will not fail since `bar` is not constant.
})();
console.log(bar);        // This will output 1 since `bar` is not scoped.

Подробности правила

Это правило запрещает использовать несколько присваиваний в одном операторе.

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

Открыть в Playground
/*eslint no-multi-assign: "error"*/

let a = b = c = 5;

const foo = bar = "baz";

let d =
    e =    c;

class Foo {
    a = b = 10;
}

a = b = "quux";

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

Открыть в Playground
/*eslint no-multi-assign: "error"*/

let a = 5;
let b = 5;
const c = 5;

const foo = "baz";
const bar = "baz";

let d = c;
let e = c;

class Foo {
    a = 10;
    b = 10;
}

a = "quux";
b = "quux";

Параметры

Это правило принимает объект параметров:

  • "ignoreNonDeclaration": Если задано значение true, правило разрешает цепочки, которые не включают инициализацию переменной в объявлении или инициализацию поля класса. По умолчанию используется значение false.

ignoreNonDeclaration

Примеры правильного кода для параметра { "ignoreNonDeclaration": true }:

Открыть в Playground
/*eslint no-multi-assign: ["error", { "ignoreNonDeclaration": true }]*/

let a;
let b;
a = b = "baz";

const x = {};
const y = {};
x.one = y.one = 1;

Примеры неправильного кода для параметра { "ignoreNonDeclaration": true }:

Открыть в Playground
/*eslint no-multi-assign: ["error", { "ignoreNonDeclaration": true }]*/

let a = b = "baz";

const foo = bar = 1;

class Foo {
    a = b = 10;
}

Связанные правила

  • max-statements-per-line

Версия

Это правило появилось в ESLint v3.14.0.

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-multi-assign

Spec-Zone.ru

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