[typescript] 유니온 타입을 사용하여 타입 에러를 줄일 수 있는 방법은 무엇인가요?
유니온 타입은 TypeScript에서 여러 타입 중 하나를 나타내는 데 사용됩니다. 유니온 타입을 적절히 활용하면 코드에서 발생할 수 있는 타입 에러를 줄일 수 있습니다. 이를 통해 더 안정적이고 안전한 코드를 작성할 수 있습니다.
1. 타입 가드 활용
유니온 타입을 사용할 때 핵심적인 패턴은 타입 가드(Type Guard) 입니다. 타입 가드를 사용하면 런타임 시점에서 변수의 타입을 보다 정확하게 추론할 수 있습니다.
예를 들어, 다음과 같이 유니온 타입을 사용한 함수에서 타입 가드를 활용할 수 있습니다.
function printId(input: string | number): void {
if (typeof input === 'string') {
console.log('문자열 ID:', input.toUpperCase());
} else {
console.log('숫자 ID:', input.toFixed(2));
}
}
2. 널러블 타입과의 활용
유니온 타입은 널러블 타입과 함께 사용하여 널 체크 또는 언디파인드 체크를 보다 쉽게 할 수 있습니다.
예를 들어, 다음과 같이 유니온 타입을 사용하여 널러블 타입을 표현할 수 있습니다.
let userInput: string | null;
// ...
if (userInput !== null) {
console.log(userInput.toUpperCase());
}
3. 체이닝과 조건부 프로퍼티
유니온 타입을 사용하여 여러 조건에 따라 다른 프로퍼티에 접근할 수 있습니다.
예를 들어, 다음과 같이 유니온 타입을 사용하여 다양한 상황에 따라 다른 프로퍼티에 접근할 수 있습니다.
type Car = {
brand: string;
speed: number;
} | {
brand: string;
price: number;
};
function printInfo(car: Car) {
if ('speed' in car) {
console.log(`브랜드: ${car.brand}, 속도: ${car.speed}`);
} else {
console.log(`브랜드: ${car.brand}, 가격: ${car.price}`);
}
}
유니온 타입을 활용하여 타입 에러를 줄이고, 코드의 안정성을 높일 수 있습니다. 이에 더불어 타입 가드와의 조합, 널러블 타입과의 활용, 그리고 조건부 프로퍼티에 대한 이해를 통해 더욱 유익한 TypeScript 코드를 작성할 수 있습니다.
관련 참고문헌: TypeScript 공식문서 - 유니온 타입