[TypeScript] 대수 타입

kjy0124·2026년 2월 17일
post-thumbnail

🎯 대수 타입

✅ 정의

여러개의 타입을 합성해 새롭게 만들어낸 타입

  • 종류
    • 합집합 타입
    • 교집합 타입

✅ 종류

1️⃣ Union타입(합집합)

type Dog = {
  name: string;
  color: string;
};

type Person = {
  name: string;
  language: string;
};

type Union1 = Dog | Person;

let union1: Union1 = {
  name: "",
  color: "",
};

let union2: Union1 = {
  name: "",
  language: "",
};

let union3: Union1 = {
  name: "",
  color: "",
  language: "",
};
  • 먼저 |를 사용하면 두 type 사용 가능
  • union1Dog 타입의 프로퍼티를,
    union2Person타입의 프로퍼티를 사용
  • union3은 두 타입의 프로퍼티를 모두 사용 가능

⚠️ 오류

let union4: Union1 = {
  name: "",
};

  • union4는 name 프로퍼티만 사용하여 두 집합 사이에 포함되지 않음

2️⃣ Intersection타입(교집합)

  • 교집합은 &을 사용
  • Number타입과 string타입은 교집합이 불가능하기에 Never타입으로 표기됨
type Dog = {
  name: string;
  color: string;
};

type Person = {
  name: string;
  language: string;
};

type Intersection = Dog & Person;

let intersection1: Intersection = {
  name: "",
  color: "",
  language: "",
};
  • Dog타입과 Person타입의 교집합이 되기 위해서는 각각의 타입의 프로퍼티를 모두 가지고 있어야 함.

출처

한 입 크기로 잘라먹는 타입스크립트
https://www.inflearn.com/course/한입-크기-타입스크립트/dashboard

profile
개발 공부...

0개의 댓글