웹개발/TypeScript

TypeScript "Type" - Union

bergerac 2025. 4. 19. 09:11

Union 타입( 유니언 타입)

  • 의미: 변수 하나가 여러 타입 중 하나의 값을 가질 수 있도록 함.
  • 표현법: 타입1 | 타입2 | ...
  • 사용 목적: 타입의 확장성을 확보하면서도 타입 안정성 유지 가능.
type VariableType = string | number | boolean | string[];

이런식으로 지정하면 value는 문자열, 숫자, 불리언, 문자열 배열 중 하나만 가질 수 있다.

 

UnionType과 Type Alias 의 활용

>>user type 선언

type User = {
  // 회원 객체가 가져야 할 속성
  id: string;
  password: string;
  name: string;
  address: string;
}

 

>>admin type 선언

type Admin = { // administrator: 관리자
  // 관리자 객체가 가져야 할 속성
  id: string;
  password: string;
  department: string; // (회사) 부서
}

>>이러한 두가지 계정의 타입을 가지는 사이트 계정인 경우 타입 별칭을 사용하여 해당 속성을 둘다 가지는  Union타입을 선언할 수 있다.

type AdminUser = Admin | User;

 

 

타입가드 사용

유니언 타입은 공통된 속성만 바로 접근 가능하기 때문에 각 타입에 고유한 속성을 사용하려면 조건문을 통해 타입을 좁혀주는 **타입 가드(type guard)**가 필요

function getAge(age: number | string) {
  if (typeof age === 'number') {
    return age.toFixed(); // 숫자인 경우 반올림
  } else {
    return age.toUpperCase(); // 문자열인 경우 대문자로 변환
  }
}
console.log(getAge(12.345));         // '12'  ← 소수점 반올림
console.log(getAge('12 years old')); // '12 YEARS OLD' ← 대문자 변환