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.