no-confusing-arrow
禁止使用容易與比較混淆的箭頭函式
🔧 可修正
此規則回報的一些問題可以使用 --fix
命令列選項自動修正
此規則在 ESLint v8.53.0 中已棄用。請使用 @stylistic/eslint-plugin-js
中的對應規則。
箭頭函式 (=>
) 的語法與某些比較運算子 (>
、<
、<=
和 >=
) 相似。此規則會警告在可能與比較運算子混淆的地方使用箭頭函式語法。
以下是一個 =>
的使用可能會造成混淆的範例
// The intent is not clear
var x = a => 1 ? 2 : 3;
// Did the author mean this
var x = function (a) {
return 1 ? 2 : 3;
};
// Or this
var x = a <= 1 ? 2 : 3;
規則詳情
此規則的錯誤程式碼範例
在遊樂場中開啟
/*eslint no-confusing-arrow: "error"*/
var x = ;
var x = ;
此規則的正確程式碼範例
在遊樂場中開啟
/*eslint no-confusing-arrow: "error"*/
var x = a => (1 ? 2 : 3);
var x = (a) => (1 ? 2 : 3);
var x = (a) => {
return 1 ? 2 : 3;
};
var x = a => { return 1 ? 2 : 3; };
選項
此規則接受兩個選項參數,預設值如下
{
"rules": {
"no-confusing-arrow": [
"error",
{ "allowParens": true, "onlyOneSimpleParam": false }
]
}
}
allowParens
是一個布林值設定,可以是 true
(預設) 或 false
true
會放寬規則,並接受括號作為有效的「防止混淆」語法。false
即使運算式被括在括號中也會警告
使用 {"allowParens": false}
選項時,此規則的錯誤程式碼範例
在遊樂場中開啟
/*eslint no-confusing-arrow: ["error", {"allowParens": false}]*/
var x = ;
var x = ;
onlyOneSimpleParam
是一個布林值設定,可以是 true
或 false
(預設)
true
會放寬規則,如果箭頭函式有 0 個或超過 1 個參數,或者參數不是識別符號,則不會回報錯誤。false
無論參數如何都會警告。
使用 {"onlyOneSimpleParam": true}
選項時,此規則的正確程式碼範例
在遊樂場中開啟
/*eslint no-confusing-arrow: ["error", {"onlyOneSimpleParam": true}]*/
() => 1 ? 2 : 3;
(a, b) => 1 ? 2 : 3;
(a = b) => 1 ? 2 : 3;
({ a }) => 1 ? 2 : 3;
([a]) => 1 ? 2 : 3;
(...a) => 1 ? 2 : 3;
相關規則
版本
此規則是在 ESLint v2.0.0-alpha-2 中引入的。