[TS] 타입을 집합으로 보기

jYur·2023년 1월 13일
0

타입 호환성과 관련이 있는 것 같으니 전에 작성한 글을 참고하면 좋을 것 같다.

type 물건_집합 = { 이름: string };
type 판매용_집합 = { 금액: number };

& === 교집합 ?

type 교집합 = 판매용_집합 & 물건_집합;

// const 물건1: 교집합 = { 이름: '내가 만든 쿠키' } // ERROR!
// const 판매용1: 교집합 = { 금액: 100 }         // ERROR!
const 판매용_물건1: 교집합 = { 이름: '내가 만든 쿠키', 금액: 100 }

교집합은 두 집합이 겹치는 일부니까 좁다.
어느 한 집합에만 속하는 원소는 안 되고 두 집합 모두에 속하는 원소만 가능.

| === 합집합 ?

type 합집합 = 물건_집합 | 판매용_집합;

const 물건2: 합집합 = { 이름: '내가 만든 쿠키' }
const 판매용2: 합집합 = { 금액: 100 }
const 판매용_물건2: 합집합 = { 이름: '내가 만든 쿠키', 금액: 100 }

합집합은 두 집합을 포함하는 범위니까 넓다.
어느 한 집합에 속하는 원소도, 두 집합 모두에 속하는 원소도 가능.

인사이트 출처
https://dev.to/zenstack/11-tips-that-help-you-become-a-better-typescript-programmer-4ca1?utm_source=Nomad+Academy&utm_campaign=b10d81b8b2-EMAIL_CAMPAIGN_2023_01_06&utm_medium=email&utm_term=0_4313d957c9-b10d81b8b2-357525643&mc_cid=b10d81b8b2

0개의 댓글