Spec-Zone.ru › ESLint

no-class-assign

Запрещает повторное присваивание членам класса

✅ Рекомендуется

Использование конфигурации recommended из @eslint/js в файле конфигурации включает это правило

ClassDeclaration создаёт переменную, которую можно изменять.

class A { }
A = 0;

Но в большинстве случаев такое изменение является ошибкой.

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

Это правило предназначено для обнаружения изменений переменных, объявленных в классах.

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

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

class A { }
A = 0;
Открыть в Playground
/*eslint no-class-assign: "error"*/

A = 0;
class A { }
Открыть в Playground
/*eslint no-class-assign: "error"*/

class A {
    b() {
        A = 0;
    }
}
Открыть в Playground
/*eslint no-class-assign: "error"*/

let A = class A {
    b() {
        A = 0;
        // `let A` is shadowed by the class name.
    }
}

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

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

let A = class A { }
A = 0; // A is a variable.
Открыть в Playground
/*eslint no-class-assign: "error"*/

let A = class {
    b() {
        A = 0; // A is a variable.
    }
}
Открыть в Playground
/*eslint no-class-assign: 2*/

class A {
    b(A) {
        A = 0; // A is a parameter.
    }
}

Параметры

У этого правила нет параметров.

Когда не следует использовать это правило

Если вы не хотите получать уведомления об изменении переменных, объявленных в классах, это правило можно отключить.

Обрабатывается TypeScript

Это правило можно безопасно отключить при использовании TypeScript, поскольку компилятор TypeScript проверяет это.

Версия

Это правило было добавлено в ESLint v1.0.0-rc-1.

Ресурсы

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

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

Spec-Zone.ru

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