プログラミング初心者でも安心!ESLintのarrow-spacingルールで矢印関数をもっと読みやすく


ESLint の "arrow-spacing" ルールは、矢印関数における => 演算子の前後におけるスペースの有無を統一するためのものです。このルールは、コードの読みやすさと一貫性を向上させるのに役立ちます。

デフォルト設定

デフォルトでは、このルールは before: true および after: true に設定されています。これは、=> 演算子の前後にスペースが 1 つ以上必要であることを意味します。

以下のコードは、arrow-spacing ルールに準拠しています。

const add = (a, b) => a + b;

const numbers = [1, 2, 3].map(x => x * 2);

一方、以下のコードは、arrow-spacing ルールに違反しています。

const add = (a, b) =>a + b;

const numbers = [1, 2, 3].map(x =>x * 2);

カスタマイズ

arrow-spacing ルールは、以下のオプションを使用してカスタマイズできます。

  • after: => 演算子の後のスペースの有無を指定します。デフォルトは true です。
  • before: => 演算子の前のスペースの有無を指定します。デフォルトは true です。

これらのオプションを false に設定すると、それぞれ前後のスペースを省略することができます。

以下のコードは、before: false および after: true に設定された arrow-spacing ルールに準拠しています。

const add = (a, b) =>a + b;

const numbers = [1, 2, 3].map(x => x * 2);

プラグイン

このプラグインは、ESLint の arrow-spacing ルールと同じ機能を提供しますが、より多くのオプションと柔軟性を備えています。



デフォルト設定

// 関数式
const add = (a, b) => a + b;

// メソッド式
const obj = {
  log: (message) => console.log(message),
};

// 配列の操作
const numbers = [1, 2, 3].map(x => x * 2);

// プロミスの処理
const promise = new Promise((resolve, reject) => {
  setTimeout(() => resolve('Hello!'), 1000);
});

before: false

以下のコードは、before: false に設定された arrow-spacing ルールに準拠しています。=> 演算子の前のスペースが省略されています。

const add = (a, b) =>a + b;

const numbers = [1, 2, 3].map(x =>x * 2);

const obj = {
  log: (message) =>console.log(message),
};

const promise = new Promise((resolve, reject) =>
  setTimeout(() => resolve('Hello!'), 1000)
);

after: false

const add = (a, b) => a + b;

const numbers = [1, 2, 3].map(x => x * 2);

const obj = {
  log: message => console.log(message),
};

const promise = new Promise((resolve, reject) =>
  setTimeout(() => resolve('Hello!'), 1000)
);

以下のコードは、before: false および after: false に設定された arrow-spacing ルールに準拠しています。=> 演算子の前後におけるスペースが省略されています。

const add = (a, b) =>a + b;

const numbers = [1, 2, 3].map(x =>x * 2);

const obj = {
  log: message =>console.log(message),
};

const promise = new Promise((resolve, reject) =>
  setTimeout(() => resolve('Hello!'), 1000)
);
  • チーム内で統一されたコーディング規約を設けることも有効です。
  • 実際のコードでは、可読性と一貫性を考慮して、適切なルール設定を選択することが重要です。


ESLint の arrow-spacing ルールは、矢印関数における => 演算子の前後におけるスペースの有無を統一するためのものです。このルールは、コードの読みやすさと一貫性を向上させるのに役立ちますが、状況によっては別の方法でスペースの統一を図ることも可能です。

代替方法

以下に、arrow-spacing ルールの代替方法をいくつか紹介します。

  • エディタの設定

多くのエディタでは、コードのフォーマット設定を変更することができます。これらの設定を使用して、矢印関数における => 演算子の前後におけるスペースの自動挿入/削除を行うことができます。

  • Prettier

Prettier は、JavaScript コードのフォーマットを自動的に統一するためのツールです。Prettier には、arrowSpacing オプションがあり、このオプションを使用して矢印関数における => 演戦子の前後におけるスペースの有無を指定することができます。

  • カスタムスクリプト

コードのフォーマットを自動的に統一するためのカスタムスクリプトを作成することもできます。このスクリプトは、矢印関数における => 演算子の前後におけるスペースの有無を統一する処理を含めることができます。

方法利点欠点
エディタの設定簡単に設定できるエディタによって機能が異なる
Prettierコード全体を統一的にフォーマットできるPrettier の設定を理解する必要がある
カスタムスクリプト柔軟性に優れている作成とメンテナンスに時間がかかる