版本

括号内的空格

强制在括号内使用一致的空格

🔧 可修复

此规则报告的一些问题可以通过 --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" 选项时,此规则的 **错误** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "never"]*/

foo( );

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

foo( /* bar */ );

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

使用默认 "never" 选项时,此规则的 **正确** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "never"]*/

foo();

foo('bar');

foo(/* bar */);

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

“always”

使用 "always" 选项时,此规则的 **错误** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "always"]*/

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

foo(/* bar */);

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

使用 "always" 选项时,此规则的 **正确** 代码示例

在游乐场中打开
/*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": ["{}"] } 选项时,此规则的 **错误** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "never", { "exceptions": ["{}"] }]*/

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

使用 "never", { "exceptions": ["{}"] } 选项时,此规则的 **正确** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "never", { "exceptions": ["{}"] }]*/

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

使用 "always", { "exceptions": ["{}"] } 选项时,此规则的 **错误** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "always", { "exceptions": ["{}"] }]*/

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

使用 "always", { "exceptions": ["{}"] } 选项时,此规则的 **正确** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "always", { "exceptions": ["{}"] }]*/

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

使用 "never", { "exceptions": ["[]"] } 选项时,此规则的 **错误** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "never", { "exceptions": ["[]"] }]*/

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

使用 "never", { "exceptions": ["[]"] } 选项时,此规则的 **正确** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "never", { "exceptions": ["[]"] }]*/

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

使用 "always", { "exceptions": ["[]"] } 选项时,此规则的 **错误** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "always", { "exceptions": ["[]"] }]*/

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

使用 "always", { "exceptions": ["[]"] } 选项时,此规则的 **正确** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "always", { "exceptions": ["[]"] }]*/

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

使用 "never", { "exceptions": ["()"] }] 选项时,此规则的 **错误** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "never", { "exceptions": ["()"] }]*/

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

使用 "never", { "exceptions": ["()"] }] 选项时,此规则的 **正确** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "never", { "exceptions": ["()"] }]*/

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

使用 "always", { "exceptions": ["()"] }] 选项时,此规则的 **错误** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "always", { "exceptions": ["()"] }]*/

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

使用 "always", { "exceptions": ["()"] }] 选项时,此规则的 **正确** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "always", { "exceptions": ["()"] }]*/

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

"empty" 异常涉及空括号,其工作方式与其他异常相同,反转第一个选项。

使用 "never", { "exceptions": ["empty"] }] 选项时,此规则的 **错误** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "never", { "exceptions": ["empty"] }]*/

foo();

使用 "never", { "exceptions": ["empty"] }] 选项时,此规则的 **正确** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "never", { "exceptions": ["empty"] }]*/

foo( );

使用 "always", { "exceptions": ["empty"] }] 选项时,此规则的 **错误** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "always", { "exceptions": ["empty"] }]*/

foo( );

使用 "always", { "exceptions": ["empty"] }] 选项时,此规则的 **正确** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "always", { "exceptions": ["empty"] }]*/

foo();

您可以在 "exceptions" 数组中包含多个条目。

使用 "always", { "exceptions": ["{}", "[]"] }] 选项时,此规则的 **错误** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "always", { "exceptions": ["{}", "[]"] }]*/

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

使用 "always", { "exceptions": ["{}", "[]"] }] 选项时,此规则的 **正确** 代码示例

在游乐场中打开
/*eslint space-in-parens: ["error", "always", { "exceptions": ["{}", "[]"] }]*/

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

何时不使用它

如果您不关心括号之间空格的一致性,则可以关闭此规则。

版本

此规则是在 ESLint v0.8.0 中引入的。

资源

更改语言