Spec-Zone.ru › ESLint

no-const-assign

Запрещает повторное присваивание переменным const, using и await using

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

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

Привязки констант нельзя изменять. Попытка изменить привязку константы приведёт к ошибке во время выполнения.

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

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

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

Открыть в песочнице
/*eslint no-const-assign: "error"*/

const a = 0;
a = 1;
Открыть в песочнице
/*eslint no-const-assign: "error"*/

const a = 0;
a += 1;
Открыть в песочнице
/*eslint no-const-assign: "error"*/

const a = 0;
++a;
Открыть в песочнице
/*eslint no-const-assign: "error"*/

if (foo) {
	using a = getSomething();
	a = somethingElse;
}

if (bar) {
	await using a = getSomething();
	a = somethingElse;
}

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

Открыть в песочнице
/*eslint no-const-assign: "error"*/

const a = 0;
console.log(a);
Открыть в песочнице
/*eslint no-const-assign: "error"*/

if (foo) {
	using a = getSomething();
	a.execute();
}

if (bar) {
	await using a = getSomething();
	a.execute();
}
Открыть в песочнице
/*eslint no-const-assign: "error"*/

for (const a in [1, 2, 3]) { // `a` is re-defined (not modified) on each loop step.
    console.log(a);
}
Открыть в песочнице
/*eslint no-const-assign: "error"*/

for (const a of [1, 2, 3]) { // `a` is re-defined (not modified) on each loop step.
    console.log(a);
}

Параметры

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

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

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

Проверяется 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-const-assign

Spec-Zone.ru

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