括号内的空格
强制在括号内使用一致的空格
此规则报告的一些问题可以通过 --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 中引入的。