コンテンツにスキップ

@stylistic/js/

brace-style

波括弧のスタイルは、プログラミングにおけるインデントスタイルと密接に関連しており、制御文と本体に対する波括弧の配置を表します。おそらく、世界には10個以上、あるいはそれ以上の波括弧スタイルがあるでしょう。

ワン・トゥルー・ブレース・スタイル は、JavaScriptで最も一般的な波括弧スタイルの1つで、ブロックの開き括弧が対応する文や宣言と同じ行に配置されます。例えば

js
if (foo) {
  bar();
} else {
  baz();
}

ワン・トゥルー・ブレース・スタイルの一般的なバリエーションの1つは、ストローストロアップと呼ばれ、if-else構造のelse文、およびcatchfinallyは、先行する閉じ括弧の後の独自の行にある必要があります。例えば

js
if (foo) {
  bar();
}
else {
  baz();
}

別のスタイルはオールマンと呼ばれ、すべての括弧は余分なインデントなしで独自の行にある必要があります。例えば

js
if (foo)
{
  bar();
}
else
{
  baz();
}

どのスタイルが他よりも優れているとは考えられていませんが、ほとんどの開発者は、プロジェクト全体で一貫したスタイルを持つことが長期的な保守性にとって重要であることに同意しています。

ルールの詳細

このルールは、ブロックの一貫した波括弧スタイルを強制します。

オプション

このルールには文字列オプションがあります

  • "1tbs" (デフォルト) は、ワン・トゥルー・ブレース・スタイルを強制します
  • "stroustrup" は、ストローストロアップスタイルを強制します
  • "allman" は、オールマンスタイルを強制します

このルールには、例外のためのオブジェクトオプションがあります

  • "allowSingleLine": true (デフォルトは false) は、ブロックの開き括弧と閉じ括弧が同じ行にあることを許可します

1tbs

デフォルトの "1tbs" オプションを使用した場合の、このルールの不正なコードの例

js
/*eslint @stylistic/js/brace-style: "error"*/

function foo()
{
return true; } if (foo)
{
bar(); } try
{
somethingRisky(); } catch(e)
{
handleError(); } if (foo) { bar();
}
else { baz(); } class C
{
static
{
foo(); } }
不正

デフォルトの "1tbs" オプションを使用した場合の、このルールの正しいコードの例

js
/*eslint @stylistic/js/brace-style: "error"*/

function foo() {
  return true;
}

if (foo) {
  bar();
}

if (foo) {
  bar();
} else {
  baz();
}

try {
  somethingRisky();
} catch(e) {
  handleError();
}

class C {
    static {
        foo();
    }
}

// when there are no braces, there are no problems
if (foo) bar();
else if (baz) boom();
正しい

"1tbs", { "allowSingleLine": true } オプションを使用した場合の、このルールの正しいコードの例

js
/*eslint @stylistic/js/brace-style: ["error", "1tbs", { "allowSingleLine": true }]*/

function nop() { return; }

if (foo) { bar(); }

if (foo) { bar(); } else { baz(); }

try { somethingRisky(); } catch(e) { handleError(); }

if (foo) { baz(); } else {
  boom();
}

if (foo) { baz(); } else if (bar) {
  boom();
}

if (foo) { baz(); } else
if (bar) {
  boom();
}

if (foo) { baz(); } else if (bar) {
  boom();
}

try { somethingRisky(); } catch(e) {
  handleError();
}

class C {
    static { foo(); }
}

class D { static { foo(); } }
正しい

stroustrup

"stroustrup" オプションを使用した場合の、このルールの不正なコードの例

js
/*eslint @stylistic/js/brace-style: ["error", "stroustrup"]*/

function foo()
{
return true; } if (foo)
{
bar(); } try
{
somethingRisky();
}
catch(e)
{
handleError(); } class C
{
static
{
foo(); } } if (foo) { bar();
}
else {
baz(); }
不正

"stroustrup" オプションを使用した場合の、このルールの正しいコードの例

js
/*eslint @stylistic/js/brace-style: ["error", "stroustrup"]*/

function foo() {
  return true;
}

if (foo) {
  bar();
}

if (foo) {
  bar();
}
else {
  baz();
}

try {
  somethingRisky();
}
catch(e) {
  handleError();
}

class C {
    static {
        foo();
    }
}

// when there are no braces, there are no problems
if (foo) bar();
else if (baz) boom();
正しい

"stroustrup", { "allowSingleLine": true } オプションを使用した場合の、このルールの正しいコードの例

js
/*eslint @stylistic/js/brace-style: ["error", "stroustrup", { "allowSingleLine": true }]*/

function nop() { return; }

if (foo) { bar(); }

if (foo) { bar(); }
else { baz(); }

try { somethingRisky(); }
catch(e) { handleError(); }

class C {
    static { foo(); }
}

class D { static { foo(); } }
正しい

allman

"allman" オプションを使用した場合の、このルールの不正なコードの例

js
/*eslint @stylistic/js/brace-style: ["error", "allman"]*/

function foo() 
{
return true; } if (foo) { bar();
}
try { somethingRisky();
}
catch(e)
{ handleError(); } class C
{
static
{
foo(); } } if (foo)
{
bar();
}
else
{
baz(); }
不正

"allman" オプションを使用した場合の、このルールの正しいコードの例

js
/*eslint @stylistic/js/brace-style: ["error", "allman"]*/

function foo()
{
  return true;
}

if (foo)
{
  bar();
}

if (foo)
{
  bar();
}
else
{
  baz();
}

try
{
  somethingRisky();
}
catch(e)
{
  handleError();
}

class C
{
    static
    {
        foo();
    }
}

// when there are no braces, there are no problems
if (foo) bar();
else if (baz) boom();
正しい

"allman", { "allowSingleLine": true } オプションを使用した場合の、このルールの正しいコードの例

js
/*eslint @stylistic/js/brace-style: ["error", "allman", { "allowSingleLine": true }]*/

function nop() { return; }

if (foo) { bar(); }

if (foo) { bar(); }
else { baz(); }

try { somethingRisky(); }
catch(e) { handleError(); }

class C
{
    static { foo(); }

    static
    { foo(); }
}

class D { static { foo(); } }
正しい

使用しない場合

特定の波括弧スタイルを強制したくない場合は、このルールを有効にしないでください。

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