コンテンツへスキップ

@stylistic/jsx/

jsx-curly-newline

JSX属性と式における中括弧内の改行の一貫性を強制します。

ルール詳細

このルールは、jsxの中括弧式内の改行の一貫性を強制します。

ルールオプション

このルールは、オブジェクトオプションを受け入れます。

ts
{
  multiline: "consistent" | "forbid" | "require", // default to 'consistent'
  singleline: "consistent" | "forbid" | "require", // default to 'consistent'
}

オプション`multiline`は、中括弧内のjsx式が複数行にわたる場合に有効になります。

オプション`singleline`は、中括弧内のjsx式が1行のみの場合に有効になります。

  • `consistent`は、両方の波括弧の中に改行があるか、改行がないかのいずれかを強制します。
  • `forbid`は、波括弧内の改行を禁止します。
  • `require`は、波括弧内の改行を強制します。

または文字列オプション

  • `consistent` (デフォルト) は`{ multiline: "consistent", singleline: "consistent" }`のエイリアスです。
  • `never`は`{ multiline: "forbid", singleline: "forbid" }`のエイリアスです。

または

consistent (デフォルト)

`consistent`または `{ multiline: "consistent", singleline: "consistent" }`で設定した場合の、このルールに違反するコードの例

jsx
<div>
  { foo
  }
</div>

<div>
  {
    foo }
</div>

<div>
  { foo &&
    foo.bar
  }
</div>

このルールに準拠するコードの例

jsx
<div>
  { foo }
</div>

<div>
  {
    foo
  }
</div>

never

`never`または `{ multiline: "forbid", singleline: "forbid" }`で設定した場合の、このルールに違反するコードの例

jsx
<div>
  {
    foo &&
    foo.bar
  }
</div>

<div>
  {
    foo
  }
</div>

<div>
  { foo
  }
</div>

このルールに準拠するコードの例

jsx
<div>
  { foo &&
    foo.bar }
</div>

<div>
  { foo }
</div>

require

`{ multiline: "require", singleline: "require" }`で設定した場合の、このルールに違反するコードの例

jsx
<div>
  { foo &&
    foo.bar }
</div>

<div>
  { foo }
</div>

<div>
  { foo
  }
</div>

このルールに準拠するコードの例

jsx
<div>
  {
    foo &&
    foo.bar
  }
</div>

<div>
  {
    foo
  }
</div>

使用しない場合

JSX属性や式内のパディング改行の一貫性を気にしない場合は、このルールを無効にできます。

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