no-confusing-arrow
アロー関数(=>
)は、構文的に一部の比較演算子(>
、<
、<=
、および>=
)と似ています。このルールは、比較演算子と混同される可能性のある場所でアロー関数構文を使用しないよう警告します。
=>
の使用が混乱を招く可能性のある例を次に示します。
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;
ルールの詳細
このルールの**誤った**コードの例
js
/*eslint @stylistic/js/no-confusing-arrow: "error"*/
/*eslint-env es6*/
var x = a => 1 ? 2 : 3;
var x = (a) => 1 ? 2 : 3;
誤り
このルールの**正しい**コードの例
js
/*eslint @stylistic/js/no-confusing-arrow: "error"*/
/*eslint-env es6*/
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; };
正しい
オプション
このルールは、以下のデフォルト値を持つ2つのオプション引数を受け入れます。
json
{
"rules": {
"no-confusing-arrow": [
"error",
{ "allowParens": true, "onlyOneSimpleParam": false }
]
}
}
allowParens
は、true
(デフォルト)またはfalse
を指定できるブール値の設定です。
true
はルールを緩和し、括弧を有効な「混乱を防ぐ」構文として受け入れます。false
は、式が括弧で囲まれている場合でも警告します。
{"allowParens": false}
オプションを使用したこのルールの**誤った**コードの例
js
/*eslint @stylistic/js/no-confusing-arrow: ["error", {"allowParens": false}]*/
/*eslint-env es6*/
var x = a => (1 ? 2 : 3);
var x = (a) => (1 ? 2 : 3);
誤り
onlyOneSimpleParam
は、true
またはfalse
(デフォルト)を指定できるブール値の設定です。
true
はルールを緩和し、アロー関数が0個以上のパラメーターを持つ場合、またはパラメーターが識別子でない場合はエラーを報告しません。false
は、パラメーターに関係なく警告します。
{"onlyOneSimpleParam": true}
オプションを使用したこのルールの**正しい**コードの例
js
/*eslint @stylistic/js/no-confusing-arrow: ["error", {"onlyOneSimpleParam": true}]*/
/*eslint-env es6*/
() => 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;
正しい