no-shadow-restricted-names
禁止标识符隐藏受限名称
✅ 推荐
在配置文件中使用来自 @eslint/js
的 recommended
配置将启用此规则。
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 中引入。