no-func-assign
禁止重新賦值 function
宣告
✅ 建議
在設定檔中使用來自 @eslint/js
的 recommended
設定會啟用此規則
JavaScript 函式可以寫成 FunctionDeclaration function foo() { ... }
或 FunctionExpression var foo = function() { ... };
。雖然 JavaScript 直譯器可能會容忍,但覆寫/重新賦值寫成 FunctionDeclaration 的函式通常表示錯誤或問題。
function foo() {}
foo = bar;
規則細節
此規則禁止重新賦值 function
宣告。
此規則的錯誤程式碼範例
在遊樂場中開啟
/*eslint no-func-assign: "error"*/
function foo() {}
= bar;
function baz() {
= bar;
}
var a = function hello() {
= 123;
};
此規則的錯誤程式碼範例,與 JSHint 中對應的規則不同
在遊樂場中開啟
/*eslint no-func-assign: "error"*/
= 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 中引入的。