コンテンツにスキップ

@stylistic/

space-before-blocks

一貫性は、あらゆるスタイルガイドの重要な部分です。ブロックの開始中括弧をどこに置くかは個人の好みですが、プロジェクト全体で一貫している必要があります。スタイルが一貫していないと、コードの重要な部分が見えにくくなります。

ルールの詳細

このルールは、ブロックの前のスペースの一貫性を強制します。新しい行で始まらないブロックにのみ適用されます。

  • このルールは、=> とブロックの間のスペースを無視します。スペースは `arrow-spacing` ルールによって処理されます。
  • このルールは、キーワードとブロックの間のスペースを無視します。スペースは `keyword-spacing` ルールによって処理されます。
  • このルールは、switch case の `:` とブロックの間のスペースを無視します。スペースは `switch-colon-spacing` ルールによって処理されます。

オプション

このルールは1つの引数を取ります。それが `"always"` であれば、ブロックの前には必ず少なくとも1つのスペースが必要です。 `“never”` の場合、すべてのブロックの前にスペースがあってはなりません。関数ブロック、キーワードブロック、クラスに異なるスペースを適用したい場合は、オプションの設定オブジェクトをルール引数として渡して、ケースごとに個別に設定できます。設定オブジェクトの値が `“off”` の場合、その種類のブロックにはどちらのスタイルも適用されません。

( 例: { "functions": "never", "keywords": "always", "classes": "always" } )

デフォルトは `"always"` です。

"always"

オプション "always" でこのルールに違反するコードの例

js
/*eslint @stylistic/space-before-blocks: "error"*/

if (a)
{
b(); } function a()
{}
for (;;)
{
b(); } try {} catch(a)
{}
class Foo
{
constructor()
{}
}
不適切

オプション `"always"` でこのルールに準拠するコードの例

js
/*eslint @stylistic/space-before-blocks: "error"*/

if (a) {
    b();
}

if (a) {
    b();
} else{ /*no error. this is checked by `keyword-spacing` rule.*/
    c();
}

class C {
    static{} /*no error. this is checked by `keyword-spacing` rule.*/
}

function a() {}

for (;;) {
    b();
}

try {} catch(a) {}
適切

"never"

オプション `"never"` でこのルールに違反するコードの例

js
/*eslint @stylistic/space-before-blocks: ["error", "never"]*/

if (a) 
{
b(); } function a()
{}
for (;;)
{
b(); } try {} catch(a)
{}
不適切

オプション `"never"` でこのルールに準拠するコードの例

js
/*eslint @stylistic/space-before-blocks: ["error", "never"]*/

if (a){
    b();
}

function a(){}

for (;;){
    b();
}

try{} catch(a){}

class Foo{
  constructor(){}
}
適切

設定が `{"functions": "never", "keywords": "always", "classes": "never"}` の場合に、このルールに違反するコードの例

js
/*eslint @stylistic/space-before-blocks: ["error", { "functions": "never", "keywords": "always", "classes": "never" }]*/
/*eslint-env es6*/

function a() 
{}
try {} catch(a)
{}
class Foo{ constructor()
{}
}
不適切

設定が `{"functions": "never", "keywords": "always", "classes": "never"}` の場合に、このルールに準拠するコードの例

js
/*eslint @stylistic/space-before-blocks: ["error", { "functions": "never", "keywords": "always", "classes": "never" }]*/
/*eslint-env es6*/

for (;;) {
  // ...
}

describe(function(){
  // ...
});

class Foo{
  constructor(){}
}
適切

設定が `{"functions": "always", "keywords": "never", "classes": "never"}` の場合に、このルールに違反するコードの例

js
/*eslint @stylistic/space-before-blocks: ["error", { "functions": "always", "keywords": "never", "classes": "never" }]*/
/*eslint-env es6*/

function a()
{}
try {} catch(a)
{}
class Foo
{
constructor()
{}
}
不適切

設定が `{"functions": "always", "keywords": "never", "classes": "never"}` の場合に、このルールに準拠するコードの例

js
/*eslint @stylistic/space-before-blocks: ["error", { "functions": "always", "keywords": "never", "classes": "never" }]*/
/*eslint-env es6*/

if (a){
  b();
}

var a = function() {}

class Foo{
  constructor() {}
}
適切

設定が `{"functions": "never", "keywords": "never", "classes": "always"}` の場合に、このルールに違反するコードの例

js
/*eslint @stylistic/space-before-blocks: ["error", { "functions": "never", "keywords": "never", "classes": "always" }]*/
/*eslint-env es6*/

class Foo
{
constructor(){} }
不適切

設定が `{"functions": "never", "keywords": "never", "classes": "always"}` の場合に、このルールに準拠するコードの例

js
/*eslint @stylistic/space-before-blocks: ["error", { "functions": "never", "keywords": "never", "classes": "always" }]*/
/*eslint-env es6*/

class Foo {
  constructor(){}
}
適切

使用しない場合

ブロックの前のスペースの一貫性を気にしない場合は、このルールを無効にすることができます。

TypeScript 特有

ts/space-before-blocks

ts
/*eslint @stylistic/ts/space-before-blocks: "error"*/

enum Breakpoint{
  Large, Mediu
m
;
} interface State{ currentBreakpoint: Breakpoint; }
ts
/*eslint @stylistic/ts/space-before-blocks: "error"*/

enum Breakpoint {
  Large, Mediu
m
;
} interface State { currentBreakpoint: Breakpoint; }

オプション

より具体的なオプションオブジェクトが渡された場合、これらのブロックは `classes` 設定オプションに従います。

適切
不適切

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