Skip to content
← Back to rules

eslint/no-case-declarations 세심한

An auto-fix is available for this rule.

작동 방식

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

참고 자료