더북(TheBook)

Diff

Diff 타입을 조금 응용하면 대칭차집합도 찾아낼 수 있습니다. 예를 들어 { name: string, age: number }{ name: string, married: boolean }과 대칭차집합하면 { age: number, married: boolean }이 나와야 합니다. 서로 겹치지 않는 부분을 합쳐놓은 것입니다. 합집합에서 교집합을 뺀 것이라고 볼 수도 있습니다.

▲ 그림 2-6 대칭차집합

type SymDiff<A, B> = Omit<A & B, keyof (A | B)>;
type R2 = SymDiff<{ name: string, age: number }, { name: string, married: boolean }>;
// type R2 = { age: number, married: boolean }
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.