Skip to content

TypeScript - Union Type 정의와 사용법 간단 정리

Union Type 이란?

Union Type은 두 개 이상의 타입을 조합해서 정의한 타입이다.

예를 들어 다수의 자료형이 있으면,

ts
interface Square {
  kind: 'square'
  size: number
}
interface Rectangle {
  kind: 'rectangle'
  width: number
  height: number
}
interface Circle {
  kind: 'circle'
  radius: number
}

Union Type은 이렇게 |로 구분해서 정의한다.

ts
type Shape = Square | Rectangle | Circle

Union Type의 타입 추론

TypeScript에서는 타입 추론(type inference)을 통해 각 타입을 추론하게 된다. TypeScript를 확인해 볼 때는 TypeScript Playground로 온라인에서 확인할 수 있다.

ts
const getArea = (shape: Shape) => {
  if (shape.kind === "square") {
    // 여기서 Rectangle과 Circle의 프로퍼티를
    // 사용하면 타입 에러가 발생한다.
    return shape.size * shape.size;
  }
  // 생략
}