[typescript] 타입 가드 함수를 사용하여 타입 안정성 향상하기
타입스크립트(TypeScript)에서는 자바스크립트의 동적 타입 변환을 보완하고, 런타임 에러를 줄이기 위해 정적 타입 체크를 제공합니다. 하지만 때로는 변수의 타입을 정확히 추론하지 못하는 상황이 발생할 수 있습니다. 이때 타입 가드 함수를 사용하여 타입 안정성을 높일 수 있습니다.
타입 가드 함수란 무엇인가요?
타입 가드 함수는 조건문과 함께 사용되며, 해당 조건을 만족할 때 변수의 타입을 명시적으로 제한하는 역할을 합니다. 이를 통해 컴파일러가 해당 변수의 타입을 더 정확하게 판단할 수 있도록 도와줍니다.
예를 들어, 다음과 같이 instanceof
연산자를 사용한 타입 가드 함수를 작성할 수 있습니다.
function isFish(pet: Fish | Bird): pet is Fish {
return (pet as Fish).swim !== undefined;
}
위 코드에서 pet is Fish
부분은 타입 가드 함수의 반환 값을 명시적으로 지정하는데, 이는 조건이 충족될 때 해당 변수의 타입을 Fish
로 한정시킨다는 의미입니다.
예제: 타입 가드 함수 활용
다음은 타입 가드 함수를 활용한 예제입니다.
interface Fish {
swim: () => void;
}
interface Bird {
fly: () => void;
}
function getPet(): Fish | Bird {
// ...
}
let pet = getPet();
if (isFish(pet)) {
pet.swim();
} else {
pet.fly();
}
위 예제에서 getPet
함수는 Fish
또는 Bird
를 반환합니다. 이후 isFish
함수를 통해 pet
의 타입을 확인하고, 조건에 따라 swim()
또는 fly()
함수를 호출할 수 있습니다.
타입 가드 함수를 사용하면 더욱 정확한 타입 추론을 할 수 있으며, 이를 통해 코드의 안정성을 높일 수 있습니다.
참고문헌: