版本

padded-blocks

要求或禁止區塊內的填充

🔧 可修正

此規則報告的某些問題可以通過 --fix 命令列選項自動修正

此規則在 ESLint v8.53.0 中已棄用。請使用 @stylistic/eslint-plugin-js 中相應的規則

一些風格指南要求區塊陳述式以空白行開始和結束。目的是通過視覺上分離區塊內容和周圍的程式碼來提高可讀性。

if (a) {

    b();

}

由於擁有一致的程式碼風格是很好的,因此您應該始終編寫填充區塊或永遠不編寫。

規則詳細資訊

此規則強制執行區塊內一致的空白行填充。

選項

此規則有兩個選項,第一個選項可以是字串選項或物件選項。第二個選項是物件選項,它可以允許例外情況。

第一個選項

字串選項

  • "always" (預設) 要求在區塊陳述式、函式主體、類別靜態區塊、類別和 switch 陳述式的開頭和結尾有空白行。
  • "never" 禁止在區塊陳述式、函式主體、類別靜態區塊、類別和 switch 陳述式的開頭和結尾有空白行。

物件選項

  • "blocks" 要求或禁止在區塊陳述式、函式主體和類別靜態區塊內填充
  • "classes" 要求或禁止在類別內填充
  • "switches" 要求或禁止在 switch 陳述式內填充

第二個選項

  • "allowSingleLineBlocks": true 允許單行區塊

always

使用預設 "always" 選項時,此規則的不正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", "always"]*/

if (a) {
    b();
}

if (a) { b(); }

if (a)
{
    b();
}

if (a) {
    b();

}

if (a) {
    // comment
    b();

}

class C {
    static {
        a();
    }
}

使用預設 "always" 選項時,此規則的正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", "always"]*/

if (a) {

    b();

}

if (a)
{

    b();

}

if (a) {

    // comment
    b();

}

class C {

    static {

        a();

    }

}

never

使用 "never" 選項時,此規則的不正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", "never"]*/

if (a) {

    b();

}

if (a)
{

    b();

}

if (a) {

    b();
}

if (a) {
    b();

}

class C {

    static {

        a();

    }

}

使用 "never" 選項時,此規則的正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", "never"]*/

if (a) {
    b();
}

if (a)
{
    b();
}

class C {
    static {
        a();
    }
}

blocks

使用 { "blocks": "always" } 選項時,此規則的不正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", { "blocks": "always" }]*/

if (a) {
    b();
}

if (a) { b(); }

if (a)
{
    b();
}

if (a) {

    b();
}

if (a) {
    b();

}

if (a) {
    // comment
    b();

}

class C {

    static {
        a();
    }

}

使用 { "blocks": "always" } 選項時,此規則的正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", { "blocks": "always" }]*/

if (a) {

    b();

}

if (a)
{

    b();

}

if (a) {

    // comment
    b();

}

class C {

    static {

        a();

    }

}

class D {
    static {

        a();

    }

}

使用 { "blocks": "never" } 選項時,此規則的不正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", { "blocks": "never" }]*/

if (a) {

    b();

}

if (a)
{

    b();

}

if (a) {

    b();
}

if (a) {
    b();

}

class C {
    static {

        a();

    }
}

使用 { "blocks": "never" } 選項時,此規則的正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", { "blocks": "never" }]*/

if (a) {
    b();
}

if (a)
{
    b();
}

class C {
    static {
        a();
    }
}

class D {

    static {
        a();
    }

}

classes

使用 { "classes": "always" } 選項時,此規則的不正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", { "classes": "always" }]*/

class  A {
    constructor(){
    }
}

使用 { "classes": "always" } 選項時,此規則的正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", { "classes": "always" }]*/

class  A {

    constructor(){
    }

}

使用 { "classes": "never" } 選項時,此規則的不正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", { "classes": "never" }]*/

class  A {

    constructor(){
    }

}

使用 { "classes": "never" } 選項時,此規則的正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", { "classes": "never" }]*/

class  A {
    constructor(){
    }
}

switches

使用 { "switches": "always" } 選項時,此規則的不正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", { "switches": "always" }]*/

switch (a) {
    case 0: foo();
}

使用 { "switches": "always" } 選項時,此規則的正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", { "switches": "always" }]*/

switch (a) {

    case 0: foo();

}

if (a) {
    b();
}

使用 { "switches": "never" } 選項時,此規則的不正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", { "switches": "never" }]*/

switch (a) {

    case 0: foo();

}

使用 { "switches": "never" } 選項時,此規則的正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", { "switches": "never" }]*/

switch (a) {
    case 0: foo();
}

if (a) {

    b();

}

always + allowSingleLineBlocks

使用 "always", {"allowSingleLineBlocks": true} 選項時,此規則的不正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", "always", { allowSingleLineBlocks: true }]*/

if (a) {
    b();
}

if (a) {

    b();
}

if (a) {
    b();

}

使用 "always", {"allowSingleLineBlocks": true} 選項時,此規則的正確程式碼範例

在遊樂場開啟
/*eslint padded-blocks: ["error", "always", { allowSingleLineBlocks: true }]*/

if (a) { b(); }

if (a) {

    b();

}

何時不應使用它

如果您不關心區塊內填充的一致性,則可以關閉此規則。

版本

此規則在 ESLint v0.9.0 中引入。

資源

變更語言