ESLint ルール: `padding-line-between-statements` でJavaScript コードをもっと美しく!サンプルコード付き


padding-line-between-statements ルールは、JavaScript コードにおける ステートメント間の空白行 について設定します。このルールを使用することで、コードの可読性と一貫性を向上させることができます。

設定

このルールは、以下のオプションを使用して設定できます。

  • next: 次のステートメントの種類を指定します。
    • 指定されたステートメントの種類の前後に空白行を挿入します。
  • prev: 前のステートメントの種類を指定します。
    • 指定されたステートメントの種類の前後に空白行を挿入します。
  • blankLine: 空白行の必要性を指定します。
    • "always": 常に 1 行以上の空白行が必要です。
    • "never": 空白行は許可されません。
    • "any": このステートメントペアは無視されます。

{
  "rules": {
    "padding-line-between-statements": [
      {
        "blankLine": "always",
        "prev": ["const", "let"],
        "next": "*"
      },
      {
        "blankLine": "never",
        "prev": ["return"],
        "next": ["if", "switch", "while"]
      }
    ]
  }
}

この例では、以下の設定が適用されます。

  • if, switch, または while ステートメントの前に、空白行は許可されません。
  • return ステートメントの後に、空白行は許可されません。
  • const または let ステートメントの後に、常に 1 行以上の空白行が必要です。

利点

このルールを使用することで、以下の利点が得られます。

  • コードの保守性が向上します。
  • コードの一貫性が向上します。
  • コードの可読性が向上します。

以下のコードは、padding-line-between-statements ルールを使用してフォーマットされています。

const name = "John Doe";
const age = 30;

console.log(`Name: ${name}`);
console.log(`Age: ${age}`);

if (age >= 18) {
  console.log("You are an adult.");
} else {
  console.log("You are a minor.");
}

このコードは、以下のようになります。

const name = "John Doe";

const age = 30;

console.log(`Name: ${name}`);
console.log(`Age: ${age}`);

if (age >= 18) {
  console.log("You are an adult.");
} else {
  console.log("You are a minor.");
}

注意点

このルールは、すべての状況で適切とは限りません。たとえば、短いコードブロックでは、空白行を追加すると読みづらくなる場合があります。また、このルールは、個人の好みによって異なる場合があります。



padding-line-between-statements ルールによるフォーマット

const name = "John Doe";
const age = 30;

console.log(`Name: ${name}`);
console.log(`Age: ${age}`);

if (age >= 18) {
  console.log("You are an adult.");
} else {
  console.log("You are a minor.");
}
const name = "John Doe";

const age = 30;

console.log(`Name: ${name}`);
console.log(`Age: ${age}`);

if (age >= 18) {
  console.log("You are an adult.");
} else {
  console.log("You are a minor.");
}

ポイント

  • if および else ステートメントの前に、空白行が挿入されています。
  • return ステートメントの後に、空白行が挿入されていません。
  • const および let ステートメントの後に、空白行が挿入されています。

ルール設定例

以下の設定例では、特定のステートメントペア間の空白行を制御します。

{
  "rules": {
    "padding-line-between-statements": [
      {
        "blankLine": "always",
        "prev": ["const", "let"],
        "next": "*"
      },
      {
        "blankLine": "never",
        "prev": ["return"],
        "next": ["if", "switch", "while"]
      }
    ]
  }
}

ポイント

  • if, switch, または while ステートメントの前に空白行は挿入されません。
  • return ステートメントの後に空白行は挿入されません。
  • 上記の設定により、const または let ステートメントの後に常に 1 行以上の空白行が挿入されます。

以下のコードは、padding-line-between-statements ルールによってフォーマットされません。

function greet(name) {
  console.log(`Hello, ${name}!`);
}

greet("John Doe");
  • ルール設定によっては、このようなコードをフォーマットしないようにすることができます。
  • このコードは、短くシンプルなため、空白行を追加すると読みづらくなる可能性があります。


padding-line-between-statements ルールは、JavaScript コードにおける ステートメント間の空白行 について設定します。このルールは、コードの可読性と一貫性を向上させるために役立ちますが、すべての状況で適切とは限りません。

代替方法としては、以下の方法が考えられます。

個別のコメントを使用する

ステートメント間の意味的な区切りを明確にするために、コメントを使用することができます。

// ユーザー情報
const name = "John Doe";
const age = 30;

// ユーザー情報の出力
console.log(`Name: ${name}`);
console.log(`Age: ${age}`);

// 成人かどうか判定
if (age >= 18) {
  console.log("You are an adult.");
} else {
  console.log("You are a minor.");
}

コードフォーマッターを使用する

Prettier や ESLint などのコードフォーマッターを使用することで、コードスタイルを自動的に統一することができます。これらのツールは、padding-line-between-statements ルールのようなルールを含む、さまざまな設定を適用することができます。

チーム内でコーディング規約を定める

チーム内でコーディング規約を定めることで、コードスタイルの一貫性を保つことができます。この規約には、padding-line-between-statements ルールのようなルールに関する規定を含めることができます。

ルールを無効化する

どうしても padding-line-between-statements ルールが適用できない場合は、ルールを無効化することができます。ただし、無効化する前に、その影響を十分に検討する必要があります。

それぞれの方法の利点と欠点

方法利点欠点
個別のコメントを使用するコードの意味的な構造がわかりやすくなるコメントの記述が増える
コードフォーマッターを使用するコードスタイルを自動的に統一できる設定に時間がかかる場合がある
チーム内でコーディング規約を定めるコードスタイルの一貫性を保てる規約の作成と合意に時間がかかる場合がある
ルールを無効化するコードを自由に記述できるコードスタイルが不統一になる可能性がある

padding-line-between-statements ルールは、コードの可読性と一貫性を向上させるために役立つ便利なルールです。しかし、このルールはすべての状況で適切とは限らないため、上記の代替方法も検討することをお勧めします。