版本

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 中引入。

延伸閱讀

資源

變更語言