首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

space-unary-ops

--fix命令行上的选项可以自动修复一些被这条规则反映的问题。

一些风格指南在一元运算符之前或之后需要或不允许空格。这主要是一个风格问题,但是,一些JavaScript表达式可以无间断地写入,这使得它更难以阅读和维护。

规则细节

该规则强化了words一元运算符之后和一元运算符之后的空间的一致性nonwords

一元运算words符的例子:

代码语言:javascript
复制
// new
var joe = new Person();

// delete
var obj = {
    foo: 'bar'
};
delete obj.foo;

// typeof
typeof {} // object

// void
void 0 // undefined

一元运算nonwords符的例子:

代码语言:javascript
复制
if ([1,2,3].indexOf(1) !== -1) {};
foo = --foo;
bar = bar++;
baz = !foo;
qux = !!baz;

选项

该规则有三个选项:

  • words-适用于一元字运营商,如:newdeletetypeofvoidyield
  • nonwords-适用于一元运算符,如:-+--++!!!
  • overrides - 指定覆盖每个操作员,单词或非单词的间距用法。默认情况下这是空的,但可以用来强制执行或禁止操作符间的空格。例如:
代码语言:javascript
复制
"space-unary-ops": [
        2, {
          "words": true,
          "nonwords": false,
          "overrides": {
            "new": false,
            "++": true
          }
    }]

在这种情况下,在new操作员之后和在操作员之前/之后要求间距将被禁止++

此规则的错误代码示例包含以下{"words": true, "nonwords": false}选项:

代码语言:javascript
复制
/*eslint space-unary-ops: "error"*/

typeof!foo;

void{foo:0};

new[foo][0];

delete(foo.bar);

++ foo;

foo --;

- foo;

+ "3";
代码语言:javascript
复制
/*eslint space-unary-ops: "error"*/
/*eslint-env es6*/

function *foo() {
    yield(0)
}

此规则的正确代码示例包含以下{"words": true, "nonwords": false}选项:

代码语言:javascript
复制
/*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";
代码语言:javascript
复制
/*eslint space-unary-ops: "error"*/
/*eslint-env es6*/

function *foo() {
    yield (0)
}

版本

该规则在ESLint 0.10.0中引入。

资源

扫码关注腾讯云开发者

领取腾讯云代金券