版本

no-shadow-restricted-names

禁止标识符从影子限制名称

推荐

配置文件 中使用来自 @eslint/jsrecommended 配置启用此规则

ES5 §15.1.1 全局对象的值属性 (NaNInfinityundefined) 以及严格模式限制标识符 evalarguments 在 JavaScript 中被认为是限制名称。将它们定义为其他含义可能会产生意想不到的后果,并使阅读代码的人感到困惑。例如,没有什么能阻止您编写

var undefined = "foo";

然后,在同一作用域内使用的任何代码都不会获得全局 undefined,而是获得具有截然不同含义的局部版本。

规则详细信息

此规则的 不正确 代码示例

在游乐场中打开
/*eslint no-shadow-restricted-names: "error"*/

function NaN(){}

!function(Infinity){};

var undefined = 5;

try {} catch(eval){}

此规则的 正确 代码示例

在游乐场中打开
/*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 中引入。

进一步阅读

资源

更改语言