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"*/
import from "foo";
import { } from "bar";
class {}
此規則的正確程式碼範例
在遊樂場中開啟
/*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 no-shadow-restricted-names: "error"*/
import { undefined as undef } from "bar";
相關規則
版本
此規則在 ESLint v0.1.4 中引入。