版本

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

變更語言