Spec-Zone.ru › ESLint

no-shadow-restricted-names

Запретить идентификаторы, затеняющие ограниченные имена

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

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

ES5 §15.1.1 Свойства значений глобального объекта (NaN, Infinity, undefined) а также ограниченные идентификаторы строгих режимов eval и arguments считаются ограниченными именами в JavaScript. Определение для них другого значения может привести к непредвиденным последствиям и сбить с толку других читателей кода. Например, ничего не мешает вам написать:

var undefined = "foo";

Тогда любой код, используемый в пределах того же области видимости, не получит глобальное значение undefined, а вместо него локальную версию с совершенно другим значением.

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

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

Открыть в Playground
/*eslint no-shadow-restricted-names: "error"*/

function NaN(){}

!function(Infinity){};

var undefined = 5;

try {} catch(eval){}

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

Открыть в Playground
/*eslint no-shadow-restricted-names: "error"*/

var Object;

function f(a, b){}

// Exception: `undefined` may be shadowed if the variable is never assigned a value.
var undefined;

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

  • no-shadow

Версия

Это правило было введено в ESLint v0.1.4.

Дополнительные материалы

Аннотированный ES5
Аннотированный ES5

Ресурсы

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

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

Spec-Zone.ru

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