# 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();
}
# 何时不使用
如果您不关心块内填充的一致性,您可以关闭此规则。