[typescript] 타입 가드 함수를 사용하여 런타임 에러 방지하기

타입스크립트는 정적 타입 검사를 통해 런타임 시 발생할 수 있는 에러를 사전에 방지할 수 있습니다. 하지만 때때로 정적 타입 검사만으로는 충분하지 않을 때가 있습니다. 이때 타입 가드 함수(type guard function)를 사용하여 보다 안전하게 코드를 작성할 수 있습니다.

타입 가드 함수란 무엇인가요?

타입 가드 함수는 특정 타입의 값을 인자로 받아 해당 타입인지 확인하고 타입스크립트에게 그 정보를 전달하는 함수입니다. 일반적으로 타입스크립트에서는 instanceof, typeof, in 연산자를 사용하여 타입을 확인합니다. 하지만 실제 프로젝트에서는 이보다 복잡한 경우가 많습니다. 복잡한 타입 검사 로직을 감싼 타입 가드 함수를 만들어 사용하면 코드의 가독성과 안전성을 높일 수 있습니다.

타입 가드 함수의 예시

다음은 UserAdmin 두 가지 타입을 가진 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 타입인지 확인합니다. 이렇게 타입 가드 함수를 사용하면 런타임 에러를 방지하면서 코드를 더 안전하게 만들 수 있습니다.

결론

타입 가드 함수를 사용하여 타입스크립트 코드를 작성하면 런타임 에러를 방지하고 안전한 코드를 유지할 수 있습니다. 이는 대규모 프로젝트에서 특히 유용하며 코드의 가독성과 유지보수성을 높이는데 도움이 될 것입니다.

더 많은 정보를 원하시거나 추가적인 질문이 있으시면 타입스크립트 공식 문서를 참고하시기 바랍니다.