[typescript] 타입 가드를 사용한 조건부 타입 예측
타입스크립트는 강력한 정적 타입 시스템을 갖추고 있으며, 이를 통해 코드의 안정성을 높일 수 있습니다. 타입 가드를 사용하면 런타임에 발생할 수 있는 에러를 사전에 방지할 수 있습니다. 이번 글에서는 타입스크립트의 타입 가드를 사용하여 조건부 타입을 예측하는 방법에 대해 살펴보겠습니다.
타입 가드란?
타입 가드는 런타임에 값의 타입을 검사하여 해당 타입에 따라 동작을 다르게 하는 기능입니다. 타입 가드를 활용하면 코드 내에서 타입 안정성을 유지하면서 런타임 에러를 방지할 수 있습니다.
타입 가드를 활용한 조건부 타입 예측
타입 가드를 사용하여 조건부 타입을 예측하는 방법을 예시를 통해 살펴보겠습니다.
type Fish = { swim: () => void };
type Bird = { fly: () => void };
function getPet(): Fish | Bird {
// 무작위로 Fish 또는 Bird를 반환하는 가정
return Math.random() < 0.5 ? { swim: () => {} } : { fly: () => {} };
}
function isFish(pet: Fish | Bird): pet is Fish {
return (pet as Fish).swim !== undefined;
}
const pet = getPet();
if (isFish(pet)) {
pet.swim(); // TypeScript는 여기서 pet을 Fish로 인식
} else {
pet.fly(); // TypeScript는 여기서 pet을 Bird로 인식
}
위 예시에서 isFish
함수는 타입 가드 역할을 합니다. isFish
함수는 pet
이 Fish인지 아닌지를 판별하여 해당하는 타입을 예측합니다. 이를 통해 런타임 에러를 방지하면서 코드의 안정성을 유지할 수 있습니다.
결론
타입 가드를 사용하여 조건부 타입을 예측하는 방법을 살펴보았습니다. 타입 가드를 활용하면 코드의 안정성을 높이고 런타임 에러를 방지할 수 있으며, 타입스크립트의 강력한 정적 타입 시스템을 최대한 활용할 수 있습니다.
참고 자료:
- TypeScript 공식 문서: https://www.typescriptlang.org/docs/handbook/2/narrowing.html#narrowing-using-type-predicates[타입 예측을 위한 타입 가드에 관한 타입스크립트 공식 문서]
- 타입 정의 문서: https://www.typescriptlang.org/docs/handbook/2/narrowing.html[타입 정의에 대한 타입스크립트 공식 문서]