eslint/max-depth Pedantic
작동 방식
블록의 중첩 깊이에 대한 최대치를 강제 적용합니다. 이 규칙은 중첩 블록의 복잡성을 제한하여, 코드가 너무 깊게 중첩되지 않도록 하여 가독성과 유지보수성을 향상시킵니다.
왜 좋지 않은가?
많은 개발자들은 블록이 일정 깊이 이상 중첩되면 코드를 읽기 어렵다고 생각합니다. 과도한 중첩은 코드의 흐름을 따라가는 것을 어렵게 만들며, 인지 부담을 증가시키고 유지보수 시 오류 발생 가능성을 높입니다. 이 규칙은 최대 블록 깊이를 강제함으로써 더 깔끔하고 가독성이 좋은 코드를 촉진합니다.
예시
기본 옵션 { "max": 3 }으로 설정했을 때 틀린 코드 예시:
js
function foo() {
for (;;) { // 중첩 1단계
while (true) { // 중첩 2단계
if (true) { // 중첩 3단계
if (true) { // 중첩 4단계 }
}
}
}
}기본 옵션 { "max": 3 }으로 설정했을 때 올바른 코드 예시:
js
function foo() {
for (;;) { // 중첩 1단계
while (true) { // 중첩 2단계
if (true) { // 중첩 3단계 }
}
}
}클래스 정적 블록은 중첩 블록으로 간주되지 않으며, 감싸는 컨텍스트와 별도로 깊이가 계산됩니다.
예시:
js
function foo() {
if (true) { // 중첩 1단계
class C {
static {
if (true) { // 중첩 1단계
if (true) { // 중첩 2단계 }
}
}
}
}
}구성
이 규칙은 다음 속성을 가지는 구성 객체를 수용합니다.
max
type: integer
기본값: 4
max는 블록의 중첩 깊이에 대한 최대치를 강제 적용합니다.
사용 방법
이 규칙을 구성 파일이나 명령줄 인터페이스에서 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"max-depth": "error"
}
}bash
oxlint --deny max-depth