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 中引入。