コンテンツにスキップ

@stylistic/

space-in-parens

スタイルガイドによっては、括弧内のスペースが必要な場合と不要な場合があります。

js
foo( 'bar' );
var x = ( 1 + 2 ) * 3;

foo('bar');
var x = (1 + 2) * 3;

ルールの詳細

このルールは、`(` の直後と `)` の直前のスペースを 1 つ以上許可または禁止することで、括弧内のスペースの整合性を強制します。

`"empty"` 例外を使用して空の括弧を明示的に禁止しない限り、`()` は許可されます。

オプション

このルールには 2 つのオプションがあります。

  • `“never”`(デフォルト)は、括弧内のスペースをゼロに強制します。
  • `“always”`は、括弧内にスペースを強制します。

コーディング規約に応じて、設定で指定することでいずれかのオプションを選択できます。

json
"space-in-parens": ["error", "always"]

`"never"`

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

js
/*eslint @stylistic/space-in-parens: ["error", "never"]*/

foo(
);
foo(
'bar');
foo('bar'
);
foo(
'bar'
);
foo(
/* bar */
);
var foo = (
1 + 2
) * 3;
(
function () { return 'bar'; }()
);
誤り

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

js
/*eslint @stylistic/space-in-parens: ["error", "never"]*/

foo();

foo('bar');

foo(/* bar */);

var foo = (1 + 2) * 3;
(function () { return 'bar'; }());
正しい

`"always"`

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

js
/*eslint @stylistic/space-in-parens: ["error", "always"]*/

foo( 'bar'
)
;
foo
(
'bar' );
foo
(
'bar'
)
;
foo
(
/* bar */
)
;
var foo =
(
1 + 2
)
* 3;
(
function () { return 'bar'; }()
)
;
誤り

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

js
/*eslint @stylistic/space-in-parens: ["error", "always"]*/

foo();
foo( );

foo( 'bar' );

foo( /* bar */ );

var foo = ( 1 + 2 ) * 3;
( function () { return 'bar'; }() );
正しい

例外

オブジェクトリテラルは、3 番目の配列項目として使用して、キー `"exceptions"` と値として配列を使用して例外を指定できます。 これらの例外は、最初のオプションのコンテキストで機能します。 つまり、`"always"` が間隔を強制するように設定されている場合、例外は間隔を *許可しません*。 逆に、`"never"` が間隔を許可しないように設定されている場合、例外は間隔を *強制します*。

このルールは括弧内のスペースのみを強制することに注意してください。 中括弧または角括弧内のスペースはチェックしませんが、開始括弧または閉じ括弧に隣接している場合に限り、それらの括弧の間隔を強制または禁止します。

次の例外が利用可能です:`["{}", "[]", "()", "empty"]`。

空の例外

空の括弧の例外と動作

  • `always` は `()` と `( )` の両方を許可します
  • `never` (デフォルト) は `()` を必須とします
  • `always` で `empty` を除外すると `()` が必須となります
  • `never` で `empty` を除外すると `( )` が必須となります (スペースのない空の括弧はここで禁止されます)

`"never", { "exceptions": ["{}"] }` オプションでこのルールに違反するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "never", { "exceptions": ["{}"] }]*/

foo
(
{bar: 'baz'}
)
;
foo(1, {bar: 'baz'}
)
;
誤り

`"never", { "exceptions": ["{}"] }` オプションでこのルールに準拠するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "never", { "exceptions": ["{}"] }]*/

foo( {bar: 'baz'} );
foo(1, {bar: 'baz'} );
正しい

`"always", { "exceptions": ["{}"] }` オプションでこのルールに違反するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "always", { "exceptions": ["{}"] }]*/

foo(
{bar: 'baz'}
);
foo( 1, {bar: 'baz'}
);
誤り

`"always", { "exceptions": ["{}"] }` オプションでこのルールに準拠するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "always", { "exceptions": ["{}"] }]*/

foo({bar: 'baz'});
foo( 1, {bar: 'baz'});
正しい

`“never”, {“exceptions”:[“[]”]} `オプションでこのルールに**違反**するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "never", { "exceptions": ["[]"] }]*/

foo
(
[bar, baz]
)
;
foo
(
[bar, baz], 1);
誤り

`“never”, {“exceptions”:[“[]”]} `オプションでこのルールに**準拠**するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "never", { "exceptions": ["[]"] }]*/

foo( [bar, baz] );
foo( [bar, baz], 1);
正しい

`“always”, {“exceptions”:[“[]”]} `オプションでこのルールに**違反**するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "always", { "exceptions": ["[]"] }]*/

foo(
[bar, baz]
);
foo(
[bar, baz], 1 );
誤り

`“always”, {“exceptions”:[“[]”]} `オプションでこのルールに**準拠**するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "always", { "exceptions": ["[]"] }]*/

foo([bar, baz]);
foo([bar, baz], 1 );
正しい

`“never”, {“exceptions”:[“()”]}]`オプションでこのルールに**違反**するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "never", { "exceptions": ["()"] }]*/

foo
(
(1 + 2)
)
;
foo
(
(1 + 2), 1);
foo(bar()
)
;
誤り

`“never”, {“exceptions”:[“()”]}]`オプションでこのルールに**準拠**するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "never", { "exceptions": ["()"] }]*/

foo( (1 + 2) );
foo( (1 + 2), 1);
foo(bar() );
正しい

`“always”, {“exceptions”:[“()”]}]`オプションでこのルールに**違反**するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "always", { "exceptions": ["()"] }]*/

foo(
( 1 + 2 )
);
foo(
( 1 + 2 ), 1 );
誤り

`“always”, {“exceptions”:[“()”]}]`オプションでこのルールに**準拠**するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "always", { "exceptions": ["()"] }]*/

foo(( 1 + 2 ));
foo(( 1 + 2 ), 1 );
正しい

`"empty"` 例外は空の括弧に関係し、他の例外と同じように機能し、最初のオプションを反転させます。

`"never", {"exceptions": ["empty"]}` オプションでこのルールに**違反**するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "never", { "exceptions": ["empty"] }]*/

foo
(
)
;
誤り

`"never", {"exceptions": ["empty"]}` オプションでこのルールに**準拠**するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "never", { "exceptions": ["empty"] }]*/

foo( );
正しい

`"always", {"exceptions": ["empty"]}` オプションでこのルールに**違反**するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "always", { "exceptions": ["empty"] }]*/

foo(
);
誤り

`"always", {"exceptions": ["empty"]}` オプションでこのルールに**準拠**するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "always", { "exceptions": ["empty"] }]*/

foo();
正しい

`"exceptions"` 配列に複数のエントリを含めることができます。

`"always", { "exceptions": ["{}", "[]"] }` オプションでこのルールに違反するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "always", { "exceptions": ["{}", "[]"] }]*/

bar(
{bar:'baz'}
);
baz( 1, [1,2]
);
foo(
{bar: 'baz'}, [1, 2]
);
誤り

`"always", { "exceptions": ["{}", "[]"] }` オプションでこのルールに準拠するコードの例

js
/*eslint @stylistic/space-in-parens: ["error", "always", { "exceptions": ["{}", "[]"] }]*/

bar({bar:'baz'});
baz( 1, [1,2]);
foo({bar: 'baz'}, [1, 2]);
正しい

使用しない場合

括弧間のスペースの整合性に関心がない場合は、このルールを無効にすることができます。

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