[typescript] switch문의 fall-through 현상과 대응 방법

switch문은 다양한 case 조건을 통해 다른 동작을 수행하는 데 사용됩니다. 그러나 typescript에서는 switch문을 사용할 때, 일부 개발자들은 case 내에서의 “fall-through” 현상 때문에 혼란을 겪을 수 있습니다.

Fall-Through 현상이란?

Fall-through 현상은 일치하는 case에서 실행되는 코드 블록 뒤에 오는 다른 case의 코드 블록도 실행되는 현상을 의미합니다. 이는 switch문의 case 문법이 C나 C++과 같은 언어에서 가져온 것으로, 해당 case에서 break 문을 사용하지 않으면 발생합니다.

switch (fruit) {
  case 'apple':
    console.log('Apple selected');
  case 'banana':
    console.log('Banana selected');
    break;
  case 'cherry':
    console.log('Cherry selected');
    break;
  default:
    console.log('Invalid fruit');
}

위의 코드에서, 만약 fruit가 ‘apple’인 경우, ‘Apple selected’와 ‘Banana selected’가 모두 출력됩니다. 이것이 fall-through 현상입니다.

Fall-Through 현상 대응 방법

fall-through 현상을 피하기 위해서는 각 case 블록 뒤에 break 문을 사용하여 다른 case 블록으로의 실행 흐름을 중단시켜야 합니다.

switch (fruit) {
  case 'apple':
    console.log('Apple selected');
    break;
  case 'banana':
    console.log('Banana selected');
    break;
  case 'cherry':
    console.log('Cherry selected');
    break;
  default:
    console.log('Invalid fruit');
}

위의 코드에서, break 문을 통해 각 case 블록의 실행을 중단시켜 fall-through 현상을 방지했습니다.

결론

typescript의 switch문을 사용할 때, fall-through 현상에 주의해야 합니다. 각 case 블록을 정확히 종료하기 위해 break 문을 적절히 활용하여 예상치 못한 버그를 방지할 수 있습니다.

위의 예시 코드를 참고하여, switch문을 사용할 때 fall-through 현상을 방지하는 방법을 적용해 보시기 바랍니다.

자세한 내용은 typescript switch 문 공식 문서를 참고하세요.