# 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" 和 "after" 的对象,也可以是上面的速记字符串。
# 示例
# before
此规则使用 "before"
选项的正确代码示例:
/*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
/*eslint-env es6*/
function *generator() {}
var anonymous = function *() {};
var shorthand = { *generator() {} };
# after
此规则使用 "after"
选项的正确代码示例:
/*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() {} }
# 何时不使用
如果您的项目不使用生成器,或者您不关心间距一致性,则不需要此规则。