space-before-function-parentheses
强制函数定义中左括号前后的空格保持一致。
在格式化函数时,函数名或 function
关键字与左括号之间允许有空格。命名函数在 function
关键字和函数名之间也需要空格,但匿名函数不需要空格。例如
function withoutSpace(x) {
// ...
}
function withSpace (x) {
// ...
}
var anonymousWithoutSpace = function() {};
var anonymousWithSpace = function () {};
风格指南可能要求匿名函数的 function
关键字后有空格,而另一些则指定没有空格。同样,函数名后的空格可能是必需的,也可能不是必需的。
规则详情
此规则旨在强制函数括号前后的空格保持一致,因此,当空格与指定的首选项不匹配时,会发出警告。
此规则接受一个参数。如果它是 "always"
,这是默认选项,则所有命名函数和匿名函数都必须在函数括号前有空格。如果 "never"
,则所有命名函数和匿名函数都不得在函数括号前有空格。如果您希望命名函数和匿名函数有不同的空格,您可以将配置对象作为规则参数传递以分别配置它们(例如 {"anonymous": "always", "named": "never"}
)。
使用默认 "always"
选项时,此规则的错误代码示例
function foo() {
// ...
}
var bar = function() {
// ...
};
var bar = function foo() {
// ...
};
class Foo {
constructor() {
// ...
}
}
var baz = {
bar() {
// ...
}
};
使用默认 "always"
选项时,此规则的正确代码示例
function foo () {
// ...
}
var bar = function () {
// ...
};
var bar = function foo () {
// ...
};
class Foo {
constructor () {
// ...
}
}
var baz = {
bar () {
// ...
}
};
使用 "never"
选项时,此规则的错误代码示例
function foo () {
// ...
}
var bar = function () {
// ...
};
var bar = function foo () {
// ...
};
class Foo {
constructor () {
// ...
}
}
var baz = {
bar () {
// ...
}
};
使用 "never"
选项时,此规则的正确代码示例
function foo() {
// ...
}
var bar = function() {
// ...
};
var bar = function foo() {
// ...
};
class Foo {
constructor() {
// ...
}
}
var baz = {
bar() {
// ...
}
};
使用 {"anonymous": "always", "named": "never"}
选项时,此规则的错误代码示例
function foo () {
// ...
}
var bar = function() {
// ...
};
class Foo {
constructor () {
// ...
}
}
var baz = {
bar () {
// ...
}
};
使用 {"anonymous": "always", "named": "never"}
选项时,此规则的正确代码示例
function foo() {
// ...
}
var bar = function () {
// ...
};
class Foo {
constructor() {
// ...
}
}
var baz = {
bar() {
// ...
}
};
使用 {"anonymous": "never", "named": "always"}
选项时,此规则的错误代码示例
function foo() {
// ...
}
var bar = function () {
// ...
};
class Foo {
constructor() {
// ...
}
}
var baz = {
bar() {
// ...
}
};
使用 {"anonymous": "never", "named": "always"}
选项时,此规则的正确代码示例
function foo () {
// ...
}
var bar = function() {
// ...
};
class Foo {
constructor () {
// ...
}
}
var baz = {
bar () {
// ...
}
};
何时不使用
如果您不关心函数括号前空格的一致性,则可以关闭此规则。
相关规则
版本
此规则在 ESLint v0.15.0 中引入,并在 v1.0.0-rc-1 中移除。