목록 보기
집합의 관점에서 타입스크립트 바라보기
프론트엔드

집합의 관점에서 타입스크립트 바라보기

화해
화해
2022년 8월 18일

두줄요약

구조적 타이핑을 기반으로 타입스크립트의 인터섹션과 유니온 타입을 집합 관점에서 해석했습니다. `keyof` 결과가 일반적인 집합 직관과 달라지는 이유를 예시로 설명합니다.

구조와 흐름

  • 자바스크립트의 구조적 타이핑을 바탕으로 타입스크립트 타입을 집합으로 해석
  • 최소 속성만 충족하면 추가 속성이 있어도 해당 타입으로 취급되는 Person 예시
  • Vector1D·Vector2D·Vector3D에서 속성이 많은 타입일수록 더 좁은 부분집합 관계

핵심 내용

  • 인터섹션 A & B에서 두 타입의 모든 속성을 보유하는 값의 집합
  • 유니온 A | B에서 두 타입 어느 쪽에도 안전하게 존재하는 속성만 접근 가능
  • keyof (A & B) = (keyof A) | (keyof B), keyof (A | B) = (keyof A) & (keyof B) 관계

주의할 점

  • 타입 연산자의 합집합·교집합과 객체 속성 집합의 합집합·교집합을 동일시하지 않는 관점
  • 구조적 타이핑 모델링에 따른 유니온 타입의 공통 키와 인터섹션 타입의 전체 키 구분

다음 읽기

#TypeScript 주제를 다룬 다른 회사 글

Typescript - Union Type, Intersection Type, Etc.

타입스크립트의 구조적 타입 시스템과 유니온·인터섹션 타입의 기본 개념을 설명했습니다. 또한 태그드 유니온과 템플릿 리터럴 타입, 객체 리터럴의 엄격한 검사까지 함께 정리했습니다.

카카오엔터테인먼트FE
카카오엔터테인먼트FE
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...