eslint/curly 스타일
작동 방식
이 규칙은 모든 제어문(if, else, for, while, do, with)에 중괄호 {} 사용을 강제합니다.
모든 블록이 중괄호로 둘러싸여 있음을 보장하여 코드의 명확성과 유지보수성을 향상시킵니다.
왜 나쁜가요?
중괄호를 생략하면 코드의 가독성이 떨어지고, 특히 깊이 중첩되거나 들여쓰기된 코드에서 오류 발생 가능성 증가합니다.
나중에 추가 문장을 작성할 때 적절히 중괄호로 감싸지 않으면 버그가 발생할 수 있습니다.
일관된 중괄호 사용은 코드를 더 안전하고 수정하기 쉽게 만듭니다.
예시
"all" (기본값)
이 규칙에 대한 잘못된 예시:
/* curly: ["error", "all"] */
if (foo) foo++;
while (bar) bar--;
do foo();
while (bar);이 규칙에 대한 올바른 예시:
/* curly: ["error", "all"] */
if (foo) {
foo++;
}
while (bar) {
bar--;
}
do {
foo();
} while (bar);"multi"
"multi" 옵션을 사용한 이 규칙에 대한 잘못된 예시:
/* curly: ["error", "multi"] */
if (foo) foo();
else {
bar();
baz();
}"multi" 옵션을 사용한 이 규칙에 대한 올바른 예시:
/* curly: ["error", "multi"] */
if (foo) foo();
else bar();"multi-line"
"multi-line" 옵션을 사용한 이 규칙에 대한 잘못된 예시:
/* curly: ["error", "multi-line"] */
if (foo) foo();
else bar();
while (foo) foo();"multi-line" 옵션을 사용한 이 규칙에 대한 올바른 예시:
/* curly: ["error", "multi-line"] */
if (foo) foo();
else bar();
while (foo) foo();
while (true) {
doSomething();
doSomethingElse();
}"multi-or-nest"
"multi-or-nest" 옵션을 사용한 이 규칙에 대한 잘못된 예시:
/* curly: ["error", "multi-or-nest"] */
if (foo) if (bar) bar();
while (foo) while (bar) bar();"multi-or-nest" 옵션을 사용한 이 규칙에 대한 올바른 예시:
/* curly: ["error", "multi-or-nest"] */
if (foo) {
if (bar) bar();
}
while (foo) {
while (bar) bar();
}"consistent"
활성화 시 "consistent"는 if-else 체인 내에서 중괄호 사용을 일관되게 적용합니다.
체인의 한 가지 브랜치에서 중괄호를 사용하면, 다른 모든 브랜치도 중괄호를 사용해야 하며, 첫 번째 옵션에 따라 반드시 필요하지 않은 경우에도 마찬가지입니다.
"multi"와 "consistent"를 함께 사용한 잘못된 예시:
/* curly: ["error", "multi", "consistent"] */
if (foo) {
bar();
baz();
} else qux();
if (foo) bar();
else {
baz();
qux();
}"multi"와 "consistent"를 함께 사용한 올바른 예시:
/* curly: ["error", "multi", "consistent"] */
if (foo) {
bar();
baz();
} else {
qux();
}
if (foo) {
bar();
} else {
baz();
qux();
}"multi-line"와 "consistent"를 함께 사용한 잘못된 예시:
/* curly: ["error", "multi-line", "consistent"] */
if (foo) {
bar();
} else baz();"multi-line"와 "consistent"를 함께 사용한 올바른 예시:
/* curly: ["error", "multi-line", "consistent"] */
if (foo) {
bar();
} else {
baz();
}"multi-or-nest"와 "consistent"를 함께 사용한 잘못된 예시:
/* curly: ["error", "multi-or-nest", "consistent"] */
if (foo) {
if (bar) baz();
} else qux();"multi-or-nest"와 "consistent"를 함께 사용한 올바른 예시:
/* curly: ["error", "multi-or-nest", "consistent"] */
if (foo) {
if (bar) baz();
} else {
qux();
}구성 방법
curly 규칙의 구성은 하나 또는 두 개의 요소로 이루어진 배열로 지정됩니다.
예시:
["all"]- 모든 경우에 중괄호 필수 (기본값)["multi"]- 다중 문장 블록에만 중괄호 필수["multi-line"]- 다중 줄 블록에만 중괄호 필수["multi-or-nest"]- 중첩되거나 다중 줄 블록에만 중괄호 필수["multi", "consistent"]- 다중 모드 +if-else체인 내에서 일관된 중괄호 사용
첫 번째 옵션
타입: "all" | "multi" | "multi-line" | "multi-or-nest"
curly 규칙에 대한 강제 유형입니다.
"all"
모든 경우에 중괄호를 요구합니다 (기본값)
"multi"
블록에 여러 문장이 있을 때만 중괄호를 요구합니다
"multi-line"
블록이 여러 줄에 걸쳐 있을 때 중괄호를 요구합니다
"multi-or-nest"
블록이 중첩되거나 여러 줄에 걸쳐 있을 때 중괄호를 요구합니다
두 번째 옵션
사용 방법
설정 파일이나 CLI를 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
{
"rules": {
"curly": "error"
}
}oxlint --deny curly