版本

space-in-parens

強制括號內的一致間距

🔧 可修正

此規則報告的某些問題可以透過 --fix 命令列 選項自動修正

重要

此規則已在 ESLint v8.53.0 中棄用。請使用 @stylistic/eslint-plugin-js 中的對應規則

瞭解更多

某些樣式指南要求或禁止在括號內使用空格

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

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

規則詳情

此規則將強制括號內直接使用一致的間距,方法是禁止或要求在 ( 的右側和 ) 的左側有一個或多個空格。

只要您不使用 "empty" 例外明確禁止空括號,就允許使用 ()

選項

此規則有兩個選項

  • "never"(預設)強制括號內沒有空格
  • "always" 強制括號內有一個空格

根據您的編碼慣例,您可以透過在設定中指定來選擇任一選項

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

“never”

使用預設 "never" 選項時,此規則的不正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "never"]*/

foo( );

foo( 'bar');
foo('bar' );
foo( 'bar' );

foo( /* bar */ );

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

使用預設 "never" 選項時,此規則的正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "never"]*/

foo();

foo('bar');

foo(/* bar */);

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

“always”

使用 "always" 選項時,此規則的不正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "always"]*/

foo( 'bar');
foo('bar' );
foo('bar');

foo(/* bar */);

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

使用 "always" 選項時,此規則的正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "always"]*/

foo();
foo( );

foo( 'bar' );

foo( /* bar */ );

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

例外

可以使用物件字面量作為第三個陣列項目來指定例外,其中鍵為 "exceptions",值為陣列。這些例外在第一個選項的上下文中運作。也就是說,如果將 "always" 設定為強制間距,則任何「例外」都將禁止間距。相反地,如果將 "never" 設定為禁止間距,則任何「例外」都將強制間距。

請注意,此規則僅強制括號內的間距;它不會檢查花括號或方括號內的間距,但如果這些括號與左括號或右括號相鄰,則會強制或禁止這些括號的間距。

以下例外可用:["{}", "[]", "()", "empty"]

空的例外

空的括號例外和行為

  • always 允許 ()( )
  • never(預設)要求 ()
  • always 例外於 empty 要求 ()
  • never 例外於 empty 要求 ( )(此處禁止沒有空格的空括號)

範例

使用 "never", { "exceptions": ["{}"] } 選項時,此規則的不正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "never", { "exceptions": ["{}"] }]*/

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

使用 "never", { "exceptions": ["{}"] } 選項時,此規則的正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "never", { "exceptions": ["{}"] }]*/

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

使用 "always", { "exceptions": ["{}"] } 選項時,此規則的不正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "always", { "exceptions": ["{}"] }]*/

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

使用 "always", { "exceptions": ["{}"] } 選項時,此規則的正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "always", { "exceptions": ["{}"] }]*/

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

使用 "never", { "exceptions": ["[]"] } 選項時,此規則的不正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "never", { "exceptions": ["[]"] }]*/

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

使用 "never", { "exceptions": ["[]"] } 選項時,此規則的正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "never", { "exceptions": ["[]"] }]*/

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

使用 "always", { "exceptions": ["[]"] } 選項時,此規則的不正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "always", { "exceptions": ["[]"] }]*/

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

使用 "always", { "exceptions": ["[]"] } 選項時,此規則的正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "always", { "exceptions": ["[]"] }]*/

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

使用 "never", { "exceptions": ["()"] }] 選項時,此規則的不正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "never", { "exceptions": ["()"] }]*/

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

使用 "never", { "exceptions": ["()"] }] 選項時,此規則的正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "never", { "exceptions": ["()"] }]*/

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

使用 "always", { "exceptions": ["()"] }] 選項時,此規則的不正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "always", { "exceptions": ["()"] }]*/

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

使用 "always", { "exceptions": ["()"] }] 選項時,此規則的正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "always", { "exceptions": ["()"] }]*/

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

"empty" 例外與空括號有關,並且與其他例外以相同的方式運作,反轉第一個選項。

使用 "never", { "exceptions": ["empty"] }] 選項時,此規則的不正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "never", { "exceptions": ["empty"] }]*/

foo();

使用 "never", { "exceptions": ["empty"] }] 選項時,此規則的正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "never", { "exceptions": ["empty"] }]*/

foo( );

使用 "always", { "exceptions": ["empty"] }] 選項時,此規則的不正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "always", { "exceptions": ["empty"] }]*/

foo( );

使用 "always", { "exceptions": ["empty"] }] 選項時,此規則的正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "always", { "exceptions": ["empty"] }]*/

foo();

您可以在 "exceptions" 陣列中包含多個項目。

使用 "always", { "exceptions": ["{}", "[]"] }] 選項時,此規則的不正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "always", { "exceptions": ["{}", "[]"] }]*/

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

使用 "always", { "exceptions": ["{}", "[]"] }] 選項時,此規則的正確程式碼範例

在 Playground 中開啟
/*eslint space-in-parens: ["error", "always", { "exceptions": ["{}", "[]"] }]*/

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

何時不應使用

如果您不關心括號之間間距的一致性,則可以關閉此規則。

版本

此規則在 ESLint v0.8.0 中引入。

資源

變更語言