generator-star-spacing
在--fix命令行上的选项可以自动修复一些被这条规则反映的问题。
生成器是 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";
}为了保持使用生成器时的一致性,这个规则强制执行一个单独的位置*。
规则细节
该规则旨在强化*发生器功能的间距。
选项
该规则采用一个选项,一个对象,它有两个键before和after布尔值true或false。
before强制关键字*和function关键字之间的间距。如果是true,则需要空间,否则空间不允许。在对象字面速记方法中*,由于它们缺少function关键字,因此未检查之前的间距。
after强制*和函数名称(或匿名生成器函数的左括号)之间的空格。如果是true,则需要空间,否则空间不允许。
默认是{"before": true, "after": false}。
一个示例配置:
"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"
速记配置的一个例子:
"generator-star-spacing": ["error", "after"]另外,这个规则允许通过每种功能类型的覆盖来进一步配置。
named为命名函数提供了重写
anonymous为匿名函数提供覆盖
method为类方法或属性函数提供了重写速记
覆盖配置的示例:
"generator-star-spacing": ["error", {
"before": false,
"after": true,
"anonymous": "neither",
"method": {"before": true, "after": true}
}]在上面的示例配置中,顶级 “before” 和 “after” 选项定义规则的默认行为,而 “anonymous” 和 “method” 选项覆盖默认行为。覆盖可以是具有“之前”和“之后”的对象,也可以是上面的简写字符串。
例子
before
此规则的正确代码示例包含以下"before"选项:
/*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:
/*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
/*eslint-env es6*/
function* generator() {}
var anonymous = function* () {};
var shorthand = { * generator() {} };both
此规则的正确代码示例包含以下"both"选项:
/*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
/*eslint-env es6*/
function * generator() {}
var anonymous = function * () {};
var shorthand = { * generator() {} };neither
此规则的正确代码示例包含以下"neither"选项:
/*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
/*eslint-env es6*/
function*generator() {}
var anonymous = function*() {};
var shorthand = { *generator() {} };此规则的不正确代码示例(包含重写):
/*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() {} }此规则的正确代码示例(带有覆盖)
/*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() {} }何时不使用它
如果您的项目不会使用生成器,或者您不关心间距一致性,则不需要此规则。
进一步阅读
- 了解 ES6:生成器版本此规则是在 ESLint 0.17.0.Resources 中引入的
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com

