Глубина вложенности
Ограничение максимальной глубины вложенности блоков
Многие разработчики считают код сложным для чтения, если блоки вложены глубже определённого уровня.
Подробное описание правила
Это правило устанавливает максимальную глубину вложенности блоков, чтобы снизить сложность кода.
Параметры
Это правило имеет числовой или объектный параметр:
-
"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
}
}
}
}
}
Примеры корректного кода для этого правила с параметром по умолчанию { "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
}
}
}
}
}
}
Примеры корректного кода для этого правила с параметром { "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.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/max-depth