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

generator-star-spacing

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

生成器是 ECMAScript 6 中的一种新功能,可随时间返回多个值。这些特殊功能通过放置关键字*后指示function

这是一个生成器函数的例子:

代码语言:javascript
复制
/*eslint-env es6*/

function* generator() {
    yield "44";
    yield "55";
}

这也是有效的:

代码语言:javascript
复制
/*eslint-env es6*/

function *generator() {
    yield "44";
    yield "55";
}

这也是有效的:

代码语言:javascript
复制
/*eslint-env es6*/

function * generator() {
    yield "44";
    yield "55";
}

为了保持使用生成器时的一致性,这个规则强制执行一个单独的位置*

规则细节

该规则旨在强化*发生器功能的间距。

选项

该规则采用一个选项,一个对象,它有两个键beforeafter布尔值truefalse

  • before强制关键字*function关键字之间的间距。如果是true,则需要空间,否则空间不允许。在对象字面速记方法中*,由于它们缺少function关键字,因此未检查之前的间距。
  • after强制*和函数名称(或匿名生成器函数的左括号)之间的空格。如果是true,则需要空间,否则空间不允许。

默认是{"before": true, "after": false}

一个示例配置:

代码语言:javascript
复制
"generator-star-spacing": ["error", {"before": true, "after": false}]

该选项的缩写为字符串关键字:

  • {"before": true, "after": false}"before"
  • {"before": false, "after": true}"after"
  • {"before": true, "after": true}"both"
  • {"before": false, "after": false}"neither"

速记配置的一个例子:

代码语言:javascript
复制
"generator-star-spacing": ["error", "after"]

另外,这个规则允许通过每种功能类型的覆盖来进一步配置。

  • named 为命名函数提供了重写
  • anonymous 为匿名函数提供覆盖
  • method 为类方法或属性函数提供了重写速记

覆盖配置的示例:

代码语言:javascript
复制
"generator-star-spacing": ["error", {
    "before": false,
    "after": true,
    "anonymous": "neither",
    "method": {"before": true, "after": true}
}]

在上面的示例配置中,顶级 “before” 和 “after” 选项定义规则的默认行为,而 “anonymous” 和 “method” 选项覆盖默认行为。覆盖可以是具有“之前”和“之后”的对象,也可以是上面的简写字符串。

例子

before

此规则的正确代码示例包含以下"before"选项:

代码语言:javascript
复制
/*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
/*eslint-env es6*/

function *generator() {}

var anonymous = function *() {};

var shorthand = { *generator() {} };

after

Examples of correct code for this rule with the "after" option:

代码语言:javascript
复制
/*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
/*eslint-env es6*/

function* generator() {}

var anonymous = function* () {};

var shorthand = { * generator() {} };

both

此规则的正确代码示例包含以下"both"选项:

代码语言:javascript
复制
/*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
/*eslint-env es6*/

function * generator() {}

var anonymous = function * () {};

var shorthand = { * generator() {} };

neither

此规则的正确代码示例包含以下"neither"选项:

代码语言:javascript
复制
/*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
/*eslint-env es6*/

function*generator() {}

var anonymous = function*() {};

var shorthand = { *generator() {} };

此规则的不正确代码示例(包含重写):

代码语言:javascript
复制
/*eslint generator-star-spacing: ["error", {
    "before": false,
    "after": true,
    "anonymous": "neither",
    "method": {"before": true, "after": true}
}]*/
/*eslint-env es6*/

function * generator() {}

var anonymous = function* () {};

var shorthand = { *generator() {} };

class Class { static* method() {} }

此规则的正确代码示例(带有覆盖)

代码语言:javascript
复制
/*eslint generator-star-spacing: ["error", {
    "before": false,
    "after": true,
    "anonymous": "neither",
    "method": {"before": true, "after": true}
}]*/
/*eslint-env es6*/

function* generator() {}

var anonymous = function*() {};

var shorthand = { * generator() {} };

class Class { static * method() {} }

何时不使用它

如果您的项目不会使用生成器,或者您不关心间距一致性,则不需要此规则。

进一步阅读

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com