eslint/no-case-declarations 세심한
작동 방식
case 절 내에서 렉시컬 선언을 금지합니다.
왜 나쁜가요?
이유는 렉시컬 선언이 전체 switch 블록 내에서 가시성이 있지만, 실제로 초기화되는 시점은 할당이 이루어질 때이며, 이는 해당 선언이 정의된 case가 실행되었을 때만 발생하기 때문입니다.
예시
이 규칙에 부적절한 코드 예시:
javascript
switch (foo) {
case 1:
let x = 1;
break;
case 2:
const y = 2;
break;
case 3:
function f() {}
break;
default:
class C {}
}이 규칙에 적절한 코드 예시:
javascript
switch (foo) {
case 1: {
let x = 1;
break;
}
case 2: {
const y = 2;
break;
}
case 3: {
function f() {}
break;
}
default: {
class C {}
}
}사용 방법
이 규칙을 설정 파일 또는 명령줄 인터페이스에서 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"no-case-declarations": "error"
}
}bash
oxlint --deny no-case-declarations