타입스크립트에서는 리터럴 타입을 사용하여 특정 값을 나타내는 타입을 지정할 수 있습니다. 하지만, 리터럴 타입을 가진 변수나 매개변수를 다룰 때 해당 값이 실제로 해당 리터럴 타입을 가지고 있는지를 확인해야 할 때가 있습니다. 이때, 타입 가드(Type Guard) 함수를 사용하여 해당 값이 올바른 타입을 가졌는지 확인할 수 있습니다.
아래는 문자열 리터럴 타입을 확인하는 타입 가드 함수를 작성하는 예제입니다. 우선, string
타입을 리터럴 타입으로 선언합니다.
type EventName = 'click' | 'hover' | 'scroll';
다음으로, 해당 리터럴 타입을 확인하는 타입 가드 함수를 작성합니다. 아래의 예제에서 isEventName
함수는 주어진 값이 EventName
타입에 속하는지를 확인하는 타입 가드 함수입니다.
function isEventName(eventName: string): eventName is EventName {
return ['click', 'hover', 'scroll'].includes(eventName);
}
위의 isEventName
함수는 eventName
이 click
, hover
, scroll
중 하나인지를 확인하여 그 결과로써 eventName
이 EventName
타입인지를 판단합니다. 함수 시그니처에서 eventName is EventName
은 이 함수가 eventName
이 EventName
타입인지를 검사하는 타입 가드 함수임을 나타냅니다.
이제 해당 타입 가드 함수를 사용하여 변수나 매개변수의 값이 올바른 타입을 가졌는지를 확인할 수 있습니다.
function handleEvent(eventName: string) {
if (isEventName(eventName)) {
// eventName에 대한 타입이 EventName으로 결정됨
console.log('Valid event name:', eventName);
} else {
console.log('Invalid event name:', eventName);
}
}
위의 예제에서 handleEvent
함수에서 isEventName
함수를 사용하여 eventName
의 타입을 확인하고, 이에 따라 올바른 처리를 수행하고 있습니다.
타입 가드 함수를 사용하여 리터럴 타입을 확인하면 코드의 안정성을 높이고 잠재적인 버그를 방지할 수 있습니다.
이렇게 타입 가드 함수를 활용하여 리터럴 타입을 확인하는 방법을 통해 타입 안정성을 높일 수 있습니다. 리터럴 타입을 다룰 때는 해당 값이 올바른 타입을 가졌는지를 확인하는 과정이 중요하며, 타입 가드 함수는 이러한 확인 작업을 보다 쉽고 안전하게 수행할 수 있도록 도와줍니다.
본 내용은 TypeScript 핸드북의 Advanced Types 섹션을 참고하여 작성되었습니다.