Versions

generator-star

在生成器函数中强制执行星号周围的一致间距。

(已移除)此规则在 ESLint v1.0 中移除并被 generator-star-spacing 所取代。

生成器是 ECMAScript 6 中一种新的函数类型,可以同时返回多个值。 这些特殊的函数是通过在 function 关键字后面加上 "* 来表示的。

下面是生成器函数的示例:

/*eslint-env es6*/

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

这也可以:

/*eslint-env es6*/

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

这还是可以:

/*eslint-env es6*/

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

为了在使用生成器时保持一致性,本规则为 * 强制执行单一位置。

规则细节

这条规则规定,* 要么放在 function 关键字旁边,要么放在函数名称旁边。这个规则的单一选项是一个指定星号位置的字符串。对于这个选项,你可以通过 "start""middle""end"。默认是 "end"

你可以像这样在配置中设置样式:

"generator-star": ["error", "start"]

当使用 "start" 时,这个位置将被强制执行。

/*eslint-env es6*/

function* generator() {
}

当使用 "middle" 时,这个位置将被强制执行:

/*eslint-env es6*/

function * generator() {
}

当使用 "end" 时,这个位置将被强制执行:

/*eslint-env es6*/

function *generator() {
}

当使用表达式语法时,"start" 将在这里被强制执行:

/*eslint-env es6*/

var generator = function* () {
}

当使用表达式语法时,"middle" 将在这里被强制执行:

/*eslint-env es6*/

var generator = function * () {
}

当使用表达式语法时,将强制执行 "end"

/*eslint-env es6*/

var generator = function *() {
}

当使用表达式语法时,这对 ``“start""end”` 都有效:

/*eslint-env es6*/

var generator = function*() {
}

生成器的缩短的对象字面语法不受此规则影响。

何时不用

如果你的项目将不使用生成器,你就不需要这个规则。

Version

This rule was introduced in ESLint v0.12.0 and removed in v1.0.0-rc-1.

Further Reading

更改语言