版本

no-new-symbol

不允許對 Symbol 物件使用 new 運算子

此規則在 ESLint v9.0.0 中已棄用,並由 no-new-native-nonconstructor 規則取代。

Symbol 不應該與 new 運算子一起使用,而是應該作為函式呼叫。

var foo = new Symbol("foo");

這會拋出 TypeError 例外。

規則詳情

此規則旨在防止意外使用 new 運算子呼叫 Symbol

範例

此規則的錯誤程式碼範例

在線上練習場中開啟
/*eslint no-new-symbol: "error"*/

var foo = new Symbol('foo');

此規則的正確程式碼範例

在線上練習場中開啟
/*eslint no-new-symbol: "error"*/

var foo = Symbol('foo');

// Ignores shadowed Symbol.
function bar(Symbol) {
    const baz = new Symbol("baz");
}

何時不使用此規則

此規則不應在 ES3/5 環境中使用。

由 TypeScript 處理

當使用 TypeScript 時,可以安全地停用此規則,因為 TypeScript 的編譯器會強制執行此檢查。

版本

此規則在 ESLint v2.0.0-beta.1 中引入。

延伸閱讀

資源

變更語言