
프론트엔드
집합의 관점에서 타입스크립트 바라보기
두줄요약
구조적 타이핑을 기반으로 타입스크립트의 인터섹션과 유니온 타입을 집합 관점에서 해석했습니다. `keyof` 결과가 일반적인 집합 직관과 달라지는 이유를 예시로 설명합니다.
구조와 흐름
- 자바스크립트의 구조적 타이핑을 바탕으로 타입스크립트 타입을 집합으로 해석
- 최소 속성만 충족하면 추가 속성이 있어도 해당 타입으로 취급되는
Person예시 Vector1D·Vector2D·Vector3D에서 속성이 많은 타입일수록 더 좁은 부분집합 관계
핵심 내용
- 인터섹션
A & B에서 두 타입의 모든 속성을 보유하는 값의 집합 - 유니온
A | B에서 두 타입 어느 쪽에도 안전하게 존재하는 속성만 접근 가능 keyof (A & B) = (keyof A) | (keyof B),keyof (A | B) = (keyof A) & (keyof B)관계
주의할 점
- 타입 연산자의 합집합·교집합과 객체 속성 집합의 합집합·교집합을 동일시하지 않는 관점
- 구조적 타이핑 모델링에 따른 유니온 타입의 공통 키와 인터섹션 타입의 전체 키 구분


