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 中移除。