no-shadow-restricted-names
Запретить идентификаторы, затеняющие ограниченные имена
Использование конфигурации recommended из @eslint/js в файле конфигурации активирует это правило
ES5 §15.1.1 Свойства значений глобального объекта (NaN, Infinity, undefined) а также ограниченные идентификаторы строгих режимов eval и arguments считаются ограниченными именами в JavaScript. Определение для них другого значения может привести к непредвиденным последствиям и сбить с толку других читателей кода. Например, ничего не мешает вам написать:
var undefined = "foo";
Тогда любой код, используемый в пределах того же области видимости, не получит глобальное значение undefined, а вместо него локальную версию с совершенно другим значением.
Подробное описание правила
Примеры неправильного кода для этого правила:
/*eslint no-shadow-restricted-names: "error"*/
function (){}
!function(){};
var = 5;
try {} catch(){}
Примеры правильного кода для этого правила:
/*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;
Связанные правила
Версия
Это правило было введено в ESLint v0.1.4.
Дополнительные материалы
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-shadow-restricted-names