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