# space-before-function-parentheses
在函数定义中打开括号之前强制保持一致的间距。
(已删除)此规则在 ESLint v1.0 中已删除,并由 space-before-function-paren
规则替换。为了与其他规则的名称保持一致,规则的名称从 "parentheses" 更改为 "paren"。
格式化函数时,函数名或 function
关键字与左括号之间允许有空格。命名函数在 function
关键字和函数名之间也需要一个空格,但匿名函数不需要空格。例如:
function withoutSpace(x) {
// ...
}
function withSpace (x) {
// ...
}
var anonymousWithoutSpace = function() {};
var anonymousWithSpace = function () {};
样式指南可能要求匿名函数的 function
关键字后有一个空格,而另一些则不指定空格。同样,函数名后面的空格可能需要也可能不需要。
# 规则详情
此规则旨在在函数括号之前强制执行一致的间距,因此,只要空格与指定的首选项不匹配,就会发出警告。
这条规则有一个论据。如果是默认选项 "always"
,则所有命名函数和匿名函数都必须在函数括号前有空格。如果是 "never"
,那么所有命名函数和匿名函数在函数括号之前不能有空格。如果您想要命名函数和匿名函数的不同间距,您可以将配置对象作为规则参数传递以分别配置它们(例如 {"anonymous": "always", "named": "never"}
)。
此规则使用默认 "always"
选项的错误代码示例:
/*eslint-env es6*/
function foo() {
// ...
}
var bar = function() {
// ...
};
var bar = function foo() {
// ...
};
class Foo {
constructor() {
// ...
}
}
var foo = {
bar() {
// ...
}
};
此规则使用默认 "always"
选项的正确代码示例:
/*eslint-env es6*/
function foo () {
// ...
}
var bar = function () {
// ...
};
var bar = function foo () {
// ...
};
class Foo {
constructor () {
// ...
}
}
var foo = {
bar () {
// ...
}
};
此规则使用 "never"
选项的错误代码示例:
/*eslint-env es6*/
function foo () {
// ...
}
var bar = function () {
// ...
};
var bar = function foo () {
// ...
};
class Foo {
constructor () {
// ...
}
}
var foo = {
bar () {
// ...
}
};
此规则使用 "never"
选项的正确代码示例:
/*eslint-env es6*/
function foo() {
// ...
}
var bar = function() {
// ...
};
var bar = function foo() {
// ...
};
class Foo {
constructor() {
// ...
}
}
var foo = {
bar() {
// ...
}
};
此规则使用 {"anonymous": "always", "named": "never"}
选项的错误代码示例:
/*eslint-env es6*/
function foo () {
// ...
}
var bar = function() {
// ...
};
class Foo {
constructor () {
// ...
}
}
var foo = {
bar () {
// ...
}
};
此规则使用 {"anonymous": "always", "named": "never"}
选项的正确代码示例:
/*eslint-env es6*/
function foo() {
// ...
}
var bar = function () {
// ...
};
class Foo {
constructor() {
// ...
}
}
var foo = {
bar() {
// ...
}
};
此规则使用 {"anonymous": "never", "named": "always"}
选项的错误代码示例:
/*eslint-env es6*/
function foo() {
// ...
}
var bar = function () {
// ...
};
class Foo {
constructor() {
// ...
}
}
var foo = {
bar() {
// ...
}
};
此规则使用 {"anonymous": "never", "named": "always"}
选项的正确代码示例:
/*eslint-env es6*/
function foo () {
// ...
}
var bar = function() {
// ...
};
class Foo {
constructor () {
// ...
}
}
var foo = {
bar () {
// ...
}
};
# 何时不使用
如果您不关心函数括号前间距的一致性,您可以关闭此规则。