コンテンツにスキップ

@stylistic/js/

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を指定できるブール値の設定です。

  1. true はルールを緩和し、括弧を有効な「混乱を防ぐ」構文として受け入れます。
  2. 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(デフォルト)を指定できるブール値の設定です。

  1. true はルールを緩和し、アロー関数が0個以上のパラメーターを持つ場合、またはパラメーターが識別子でない場合はエラーを報告しません。
  2. 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;
正しい

MITライセンスでリリースされています。