padded-blocks
要求或禁止區塊內的填補
此規則回報的一些問題可以透過 --fix
命令列 選項自動修正
有些風格指南要求區塊陳述式以空白行開始和結束。目標是透過視覺上分隔區塊內容和周圍的程式碼來提高可讀性。
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 中引入。