Skip to content
← Back to rules

eslint/no-sequences 制限

何をするか

コンマ演算子の使用を禁止します。

なぜ悪いのか

コンマ演算子は、そのオペランドを左から右へ評価し、最後のオペランドの値を返します。しかし、この演算子は頻繁に副作用を隠蔽しており、使用はしばしば誤りによるものです。

オプション

  • allowInParentheses(デフォルト: true):false に設定された場合、括弧で囲まれた場合でもコンマ演算子の使用を禁止します。

このルールに対する誤ったコードの例:

javascript
((foo = doSomething()), val);

(0, eval("doSomething();"));

// アロー関数の本体には二重の括弧が必要
const fn = () => (doSomething(), val);

// allowInParentheses: false の場合
foo = (doSomething(), val);

このルールに対する正しいコードの例:

javascript
foo = (doSomething(), val);

(0, eval)("doSomething();");

// 条件式では単なる余分な括弧で十分
do {} while ((doSomething(), !!test));

for (i = 0, j = 10; i < j; i++, j--) {}

// アロー関数の本体には二重の括弧が必要
const fn = () => (doSomething(), val);

設定

このルールは以下のプロパティを持つ設定オブジェクトを受け入れます:

allowInParentheses

型: boolean

デフォルト: true

このオプションが false に設定されている場合、式のシーケンスが明示的に括弧で囲まれている場合でも、コンマ演算子の使用を禁止します。デフォルトは true です。

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:

json
{
  "rules": {
    "no-sequences": "error"
  }
}
bash
oxlint --deny no-sequences

参照