ESLintのspace-in-parensルールとは?


  • "off": 括弧内にスペースがあってもなくても構いません。
  • "warn": 括弧内にスペースがない場合は警告を出力します。
  • "error": 括弧内にスペースがない場合はエラーを出力します。

以下のコードは、space-in-parens ルールが "error" に設定されている場合にエラーを出力します。

function myFunction(param) {
  console.log(param);
}

myFunction(10); // エラー: 括弧内にスペースがありません

以下のコードは、space-in-parens ルールが "warn" に設定されている場合に警告を出力します。

function myFunction( param ) {
  console.log( param );
}

myFunction( 10 ); // 警告: 括弧内にスペースがありません

以下のコードは、space-in-parens ルールが "off" に設定されている場合、エラーも警告も出力されません。

function myFunction(param) {
  console.log(param);
}

myFunction(10);

このルールを使う利点

  • 異なるコーディングスタイルを持つ開発者が混在するチームで作業する場合に、コードの統一性を保ちやすくなります。
  • コードの可読性が向上します。
  • 一部の開発者にとっては、読みづらいコードと感じる場合があります。
  • 既存のコードベースに適用すると、多くのコード変更が必要になる場合があります。


space-in-parens ルールが "error" の場合

function myFunction(param) {
  console.log(param);
}

myFunction(10); // エラー: 括弧内にスペースがありません

修正例:

function myFunction( param ) {
  console.log( param );
}

myFunction( 10 );

space-in-parens ルールが "warn" の場合

function myFunction( param ) {
  console.log( param );
}

myFunction( 10 ); // 警告: 括弧内にスペースがありません
function myFunction( param ) {
  console.log( param );
}

myFunction( 10 );

space-in-parens ルールが "off" の場合

function myFunction(param) {
  console.log(param);
}

myFunction(10);

space-in-parens ルールには、以下の例外を設定できます。

  • inside: 括弧内のスペースの有無を制御する。
  • exceptions: 特定の括弧に対してスペースの有無を無視する。

/*eslint space-in-parens: ["error", "never", { "exceptions": ["foo()"] }]*/
function foo(param) {
  console.log(param);
}

function bar(param) {
  console.log( param );
}

foo(10); // エラー: 括弧内にスペースがありません
bar(10); // OK: 括弧内にスペースがありません

以下のコードは、inside オプションを使用して、括弧内のすべてのスペースを必須とします。

/*eslint space-in-parens: ["error", "always", { "inside": "always" }]*/
function foo( param ) {
  console.log( param  );
}

foo( 10 ); // エラー: 括弧内にスペースがありません


別のコーディングスタイルガイドを使用する

JavaScript には、space-in-parens ルールとは異なるコーディングスタイルを定義するガイドラインがいくつかあります。代表的な例としては、以下のものがあります。

これらのガイドラインには、括弧内のスペースの扱い方に関する独自のルールが含まれています。

カスタム ESLint ルールを作成する

space-in-parens ルールの動作をカスタマイズしたい場合は、カスタム ESLint ルールを作成することができます。これにより、特定のケースを除いて括弧内にスペースを必須にするなど、より詳細な制御が可能になります。

手動でコードを修正する

space-in-parens ルールを無効にして、手動でコードを修正することもできます。ただし、この方法は時間がかかり、エラーが発生しやすくなる可能性があります。

チームでルールを統一する

チームで開発している場合は、space-in-parens ルールを含め、コーディングスタイルに関するルールを統一することが重要です。これにより、コードの可読性と一貫性を向上させることができます。

方法利点欠点
別のコーディングスタイルガイドを使用する一貫性のあるコードベースを維持しやすい既存のコードベースと互換性がない場合がある
カスタム ESLint ルールを作成するルールの動作を詳細に制御できるルールの作成と保守に時間がかかる
手動でコードを修正する柔軟性がある時間と労力がかかる
チームでルールを統一するコードの可読性と一貫性を向上できるチーム内の合意が必要