space-in-parens
スタイルガイドによっては、括弧内のスペースが必要な場合と不要な場合があります。
foo( 'bar' );
var x = ( 1 + 2 ) * 3;
foo('bar');
var x = (1 + 2) * 3;
ルールの詳細
このルールは、(
の直後と )
の直前にスペースを 1 つ以上必須または禁止することで、括弧内のスペースの統一性を強制します。
"empty"
例外を使用して空の括弧を明示的に禁止しない限り、()
は許可されます。
オプション
このルールには2つのオプションがあります。
"never"
(デフォルト) は括弧内のスペースをゼロに強制します。"always"
は括弧内にスペースを強制します。
コーディング規約に応じて、設定でいずれかのオプションを指定できます。
"space-in-parens": ["error", "always"]
"never"
デフォルトの "never"
オプションでこのルールに違反するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "never"]*/
foo( );
foo( 'bar');
foo('bar' );
foo( 'bar' );
foo( /* bar */ );
var foo = ( 1 + 2 ) * 3;
( function () { return 'bar'; }() );
デフォルトの "never"
オプションでこのルールに準拠するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "never"]*/
foo();
foo('bar');
foo(/* bar */);
var foo = (1 + 2) * 3;
(function () { return 'bar'; }());
"always"
"always"
オプションでこのルールに違反するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "always"]*/
foo( 'bar');
foo('bar' );
foo('bar');
foo(/* bar */);
var foo = (1 + 2) * 3;
(function () { return 'bar'; }());
"always"
オプションでこのルールに準拠するコードの例
/*eslint @stylistic/js/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": ["{}"] }
オプションでこのルールに違反するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "never", { "exceptions": ["{}"] }]*/
foo({bar: 'baz'});
foo(1, {bar: 'baz'});
"never", { "exceptions": ["{}"] }
オプションでこのルールに準拠するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "never", { "exceptions": ["{}"] }]*/
foo( {bar: 'baz'} );
foo(1, {bar: 'baz'} );
"always", { "exceptions": ["{}"] }
オプションでこのルールに違反するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "always", { "exceptions": ["{}"] }]*/
foo( {bar: 'baz'} );
foo( 1, {bar: 'baz'} );
"always", { "exceptions": ["{}"] }
オプションでこのルールに準拠するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "always", { "exceptions": ["{}"] }]*/
foo({bar: 'baz'});
foo( 1, {bar: 'baz'});
"never", { "exceptions": ["[]"] }
オプションでこのルールに違反するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "never", { "exceptions": ["[]"] }]*/
foo([bar, baz]);
foo([bar, baz], 1);
"never", { "exceptions": ["[]"] }
オプションでこのルールに準拠するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "never", { "exceptions": ["[]"] }]*/
foo( [bar, baz] );
foo( [bar, baz], 1);
"always", { "exceptions": ["[]"] }
オプションでこのルールに違反するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "always", { "exceptions": ["[]"] }]*/
foo( [bar, baz] );
foo( [bar, baz], 1 );
"always", { "exceptions": ["[]"] }
オプションでこのルールに準拠するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "always", { "exceptions": ["[]"] }]*/
foo([bar, baz]);
foo([bar, baz], 1 );
"never", { "exceptions": ["()"] }]
オプションでこのルールに違反するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "never", { "exceptions": ["()"] }]*/
foo((1 + 2));
foo((1 + 2), 1);
foo(bar());
"never", { "exceptions": ["()"] }]
オプションでこのルールに準拠するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "never", { "exceptions": ["()"] }]*/
foo( (1 + 2) );
foo( (1 + 2), 1);
foo(bar() );
"always", { "exceptions": ["()"] }]
オプションでこのルールに違反するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "always", { "exceptions": ["()"] }]*/
foo( ( 1 + 2 ) );
foo( ( 1 + 2 ), 1 );
"always", { "exceptions": ["()"] }]
オプションでこのルールに準拠するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "always", { "exceptions": ["()"] }]*/
foo(( 1 + 2 ));
foo(( 1 + 2 ), 1 );
"empty"
例外は空の括弧に関連し、他の例外と同じように機能し、最初のオプションを反転させます。
"never", { "exceptions": ["empty"] }]
オプションでこのルールに違反するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "never", { "exceptions": ["empty"] }]*/
foo();
"never", { "exceptions": ["empty"] }]
オプションでこのルールに準拠するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "never", { "exceptions": ["empty"] }]*/
foo( );
"always", { "exceptions": ["empty"] }]
オプションでこのルールに違反するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "always", { "exceptions": ["empty"] }]*/
foo( );
"always", { "exceptions": ["empty"] }]
オプションでこのルールに準拠するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "always", { "exceptions": ["empty"] }]*/
foo();
"exceptions"
配列に複数のエントリを含めることができます。
"always", { "exceptions": ["{}", "[]"] }]
オプションでこのルールに違反するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "always", { "exceptions": ["{}", "[]"] }]*/
bar( {bar:'baz'} );
baz( 1, [1,2] );
foo( {bar: 'baz'}, [1, 2] );
"always", { "exceptions": ["{}", "[]"] }]
オプションでこのルールに準拠するコードの例
/*eslint @stylistic/js/space-in-parens: ["error", "always", { "exceptions": ["{}", "[]"] }]*/
bar({bar:'baz'});
baz( 1, [1,2]);
foo({bar: 'baz'}, [1, 2]);
使用しない場合
括弧間のスペースの整合性を気にしない場合は、このルールを無効にすることができます。