版本

no-func-assign

禁止重新賦值 function 宣告

建議

設定檔中使用來自 @eslint/jsrecommended 設定會啟用此規則

JavaScript 函式可以寫成 FunctionDeclaration function foo() { ... } 或 FunctionExpression var foo = function() { ... };。雖然 JavaScript 直譯器可能會容忍,但覆寫/重新賦值寫成 FunctionDeclaration 的函式通常表示錯誤或問題。

function foo() {}
foo = bar;

規則細節

此規則禁止重新賦值 function 宣告。

此規則的錯誤程式碼範例

在遊樂場中開啟
/*eslint no-func-assign: "error"*/

function foo() {}
foo = bar;

function baz() {
    baz = bar;
}

var a = function hello() {
  hello = 123;
};

此規則的錯誤程式碼範例,與 JSHint 中對應的規則不同

在遊樂場中開啟
/*eslint no-func-assign: "error"*/

foo = bar;
function foo() {}

此規則的正確程式碼範例

在遊樂場中開啟
/*eslint no-func-assign: "error"*/

var foo = function () {}
foo = bar;

function baz(baz) { // `baz` is shadowed.
    baz = bar;
}

function qux() {
    var qux = bar;  // `qux` is shadowed.
}

由 TypeScript 處理

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

版本

此規則是在 ESLint v0.0.9 中引入的。

資源

變更語言