space-unary-ops
在一元运算符(空间一元运算符)之前/之后需要或不允许空格
在--fix
命令行上的选项可以自动修复一些被这条规则反映的问题。
一些风格指南在一元运算符之前或之后需要或不允许空格。这主要是一个风格问题,但是,一些JavaScript表达式可以无间断地写入,这使得它更难以阅读和维护。
规则细节
该规则强化了words
一元运算符之后和一元运算符之后的空间的一致性nonwords
。
一元运算words
符的例子:
// new
var joe = new Person(
// delete
var obj = {
foo: 'bar'
};
delete obj.foo;
// typeof
typeof {} // object
// void
void 0 // undefined
一元运算nonwords
符的例子:
if ([1,2,3].indexOf(1) !== -1) {};
foo = --foo;
bar = bar++;
baz = !foo;
qux = !!baz;
选项
该规则有三个选项:
words
-适用于一元字运营商,如:new
,delete
,typeof
,void
,yield
nonwords
-
适用于一元运算符,如:-
,+
,--
,++
,!
,!!
overrides
- 指定覆盖每个操作员,单词或非单词的间距用法。默认情况下这是空的,但可以用来强制执行或禁止操作符间的空格。例如:
"space-unary-ops": [
2, {
"words": true,
"nonwords": false,
"overrides": {
"new": false,
"++": true
}
}]
在这种情况下,在new
操作员之后和在操作员之前/之后要求间距将被禁止++
。
此规则的错误
代码示例包含以下{"words": true, "nonwords": false}
选项:
/*eslint space-unary-ops: "error"*/
typeof!foo;
void{foo:0};
new[foo][0];
delete(foo.bar
++ foo;
foo --;
- foo;
+ "3";
/*eslint space-unary-ops: "error"*/
/*eslint-env es6*/
function *foo() {
yield(0)
}
此规则的正确
代码示例包含以下{"words": true, "nonwords": false}
选项:
/*eslint space-unary-ops: "error"*/
// Word unary operator "delete" is followed by a whitespace.
delete foo.bar;
// Word unary operator "new" is followed by a whitespace.
new Foo;
// Word unary operator "void" is followed by a whitespace.
void 0;
// Unary operator "++" is not followed by whitespace.
++foo;
// Unary operator "--" is not preceded by whitespace.
foo--;
// Unary operator "-" is not followed by whitespace.
-foo;
// Unary operator "+" is not followed by whitespace.
+"3";
/*eslint space-unary-ops: "error"*/
/*eslint-env es6*/
function *foo() {
yield (0)
}
版本
该规则在ESLint 0.10.0中引入。