[typescript] 타입 가드 함수를 사용하여 런타임 에러 방지하기
타입스크립트는 정적 타입 검사를 통해 런타임 시 발생할 수 있는 에러를 사전에 방지할 수 있습니다. 하지만 때때로 정적 타입 검사만으로는 충분하지 않을 때가 있습니다. 이때 타입 가드 함수(type guard function)를 사용하여 보다 안전하게 코드를 작성할 수 있습니다.
타입 가드 함수란 무엇인가요?
타입 가드 함수는 특정 타입의 값을 인자로 받아 해당 타입인지 확인하고 타입스크립트에게 그 정보를 전달하는 함수입니다. 일반적으로 타입스크립트에서는 instanceof
, typeof
, in
연산자를 사용하여 타입을 확인합니다. 하지만 실제 프로젝트에서는 이보다 복잡한 경우가 많습니다. 복잡한 타입 검사 로직을 감싼 타입 가드 함수를 만들어 사용하면 코드의 가독성과 안전성을 높일 수 있습니다.
타입 가드 함수의 예시
다음은 User
와 Admin
두 가지 타입을 가진 UserType
타입을 가지고 있는 예시 코드입니다.
interface User {
name: string;
age: number;
}
interface Admin {
name: string;
role: string;
}
type UserType = User | Admin;
function isAdmin(user: UserType): user is Admin {
return (user as Admin).role !== undefined;
}
위의 예시 코드에서 isAdmin
함수는 UserType
을 받아 해당 객체가 Admin
타입인지 확인합니다. 이렇게 타입 가드 함수를 사용하면 런타임 에러를 방지하면서 코드를 더 안전하게 만들 수 있습니다.
결론
타입 가드 함수를 사용하여 타입스크립트 코드를 작성하면 런타임 에러를 방지하고 안전한 코드를 유지할 수 있습니다. 이는 대규모 프로젝트에서 특히 유용하며 코드의 가독성과 유지보수성을 높이는데 도움이 될 것입니다.
더 많은 정보를 원하시거나 추가적인 질문이 있으시면 타입스크립트 공식 문서를 참고하시기 바랍니다.