版本

max-depth

强制执行块可以嵌套的最大深度

许多开发人员认为,如果块嵌套超出一定深度,代码将难以阅读。

规则详情

此规则强制执行块可以嵌套的最大深度,以降低代码复杂度。

选项

此规则具有数字或对象选项

  • "max"(默认值 4)强制执行块可以嵌套的最大深度

已弃用:对象属性 maximum 已弃用;请改用对象属性 max

max

使用默认 { "max": 4 } 选项时,此规则的错误代码示例

在代码游乐场中打开
/*eslint max-depth: ["error", 4]*/

function foo() {
    for (;;) { // Nested 1 deep
        while (true) { // Nested 2 deep
            if (true) { // Nested 3 deep
                if (true) { // Nested 4 deep
                    if (true) { // Nested 5 deep
                    }
                }
            }
        }
    }
}

使用默认 { "max": 4 } 选项时,此规则的正确代码示例

在代码游乐场中打开
/*eslint max-depth: ["error", 4]*/

function foo() {
    for (;;) { // Nested 1 deep
        while (true) { // Nested 2 deep
            if (true) { // Nested 3 deep
                if (true) { // Nested 4 deep
                }
            }
        }
    }
}

请注意,类静态块不计为嵌套块,并且其中的深度与封闭上下文分开计算。

使用 { "max": 2 } 选项时,此规则的错误代码示例

在代码游乐场中打开
/*eslint max-depth: ["error", 2]*/

function foo() {
    if (true) { // Nested 1 deep
        class C {
            static {
                if (true) { // Nested 1 deep
                    if (true) { // Nested 2 deep
                        if (true) { // Nested 3 deep
                        }
                    }
                }
            }
        }
    }
}

使用 { "max": 2 } 选项时,此规则的正确代码示例

在代码游乐场中打开
/*eslint max-depth: ["error", 2]*/

function foo() {
    if (true) { // Nested 1 deep
        class C {
            static {
                if (true) { // Nested 1 deep
                    if (true) { // Nested 2 deep
                    }
                }
            }
        }
    }
}

版本

此规则在 ESLint v0.0.9 中引入。

资源

更改语言