[typescript] 유니온 타입과 타입 가드를 함께 사용하는 예시 코드를 보여주세요.

유니온 타입과 타입 가드를 함께 사용하여 타입 안전성을 높일 수 있습니다. 유니온 타입을 사용하면 여러 가지 타입 중 하나일 수 있는 값을 표현할 수 있으며, 타입 가드는 해당 값이 어떤 타입인지를 좀 더 구체적으로 확인하는 용도로 사용됩니다.

예를 들어, 다음과 같이 유니온 타입과 타입 가드를 함께 사용할 수 있습니다.

type User = {
  id: number;
  username: string;
} | {
  id: string;
  username: string;
};

function getUserId(user: User): number | string {
  if (typeof user.id === 'number') {
    return user.id;
  } else {
    // 타입 가드를 사용하여 user.id를 number로 변환
    return parseInt(user.id, 10);
  }
}

위 예시에서 User 타입은 idnumber 혹은 string일 수 있는 유니온 타입으로 정의되어 있습니다. 그리고 getUserId 함수에서 typeof 연산자를 사용하여 user.idnumber인지를 확인한 후, 해당하는 타입으로 반환값의 타입을 지정해주었습니다.

이렇게 유니온 타입과 타입 가드를 함께 사용하여 안전한 타입 변환을 보장할 수 있습니다.

더 자세한 내용은 공식 TypeScript 문서를 참고할 수 있습니다.