[typescript] 열거형(Enum)을 이용한 타입 가드(Type Guard)
타입스크립트(TypeScript)에서는 열거형(Enum)을 사용하여 타입 가드(Type Guard)를 구현할 수 있습니다. 열거형은 특정 값 집합에 이름을 붙여 사용할 수 있도록 도와주는 기능이며, 타입 가드는 런타임 상태에서 해당 값의 타입을 보장해주는 방법입니다. 이 두 가지를 결합하여 코드의 가독성과 안정성을 높일 수 있습니다.
열거형(Enum) 소개
열거형은 관련된 상수 값들을 묶어서 정의할 수 있는 TypeScript의 기능입니다. 예를 들어, 요일에 대한 열거형을 다음과 같이 정의할 수 있습니다.
enum Day {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
}
위의 열거형은 0부터 6까지의 순서를 갖는 값을 가지게 됩니다.
타입 가드(Type Guard) 구현
이제 이 열거형을 사용하여 함수 내에서 해당 값의 타입을 보장해주는 타입 가드를 다음과 같이 구현할 수 있습니다.
function isWeekend(day: Day): day is Day.Saturday | Day.Sunday {
return day === Day.Saturday || day === Day.Sunday;
}
function getDayMessage(day: Day) {
if (isWeekend(day)) {
return "It's the weekend!";
} else {
return "It's a weekday.";
}
}
위의 예제에서 isWeekend
함수는 day
파라미터의 타입을 Day.Saturday
또는 Day.Sunday
로 보장해주는 타입 가드 함수입니다. 이를 활용하여 getDayMessage
함수 내에서는 주말과 평일에 따라 다른 메시지를 반환하도록 구현할 수 있습니다.
결론
TypeScript에서 열거형과 타입 가드를 결합하여 코드의 가독성과 안정성을 높일 수 있습니다. 열거형을 활용하여 관련된 상수 값을 그룹화하고, 타입 가드를 통해 런타임 상태에서 값의 타입을 보장받을 수 있습니다.