[TS] 대수타입(union 타입)( | )

짱효·2024년 1월 12일
0

📖 TypeScript

목록 보기
13/20

대수타입

  • -> 여러개의 타입을 합성해서 새롭게 만들어낸 타입
  • -> 합집합 타입과 교집합 타입이 존재합니다.

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: "",
};

// 아무 집합에도 포합되지 않아 에러발생
// let union4: Union1 = {
//   name: "",
// };

⬇️⚠️에러발생 - 공통으로 들어간 name만 쓰면 에러



  • union4 타입은 아무 집합에도 포함되지 않는다.

2. 교집합 타입 - Intersection 타입(&)

  • &

두타입의 교집합은 모든 프로퍼티를 가지고있다.
하나라도 빼먹으면 안된다.

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

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

type Intersection = Dog & Person;

let Intersection: Intersection = {
  name: "",
  color: "",
  language: "",
};

// 🚨에러!!! / 모든 프로퍼티 3개 다 있어야함!!
let Intersection2: Intersection = {
  name: "",
  color: "",
  //language: "",
};

profile
✨🌏확장해 나가는 프론트엔드 개발자입니다✏️

0개의 댓글