타입스크립트에서 매핑된 유형 | Axel Rauschmayer


TypeScript의 Mapped Type은 객체나 튜플에 대한 키의 유니온을 순회하여, 원하는 방식으로 프로퍼티를 수정하거나 확장·축소할 수 있는 기능입니다. 덕분에 기존 타입의 프로퍼티 이름을 ‘as’ 키워드로 재정의하거나, 조건부로 ‘never’를 지정해 특정 프로퍼티를 제거할 수 있습니다. 또한 Pick·Omit 같은 유틸리티 타입으로 필요한 키를 선택하거나 제외하며, +?·-?로 선택적 여부를, +readonly·-readonly로 읽기 전용 여부를 제어할 수도 있습니다. 이를 통해 훨씬 유연하고 간결한 타입 설계가 가능합니다.

1개의 좋아요

타입스크립트의 조건부 유형


TypeScript의 조건부 타입(conditional types)은 “Sub extends Super ? True : False” 형태의 삼항 연산자를 사용하여, Sub가 Super에 할당 가능한지에 따라 결과 타입을 분기하는 기능입니다. 덕분에 합집합(union) 타입의 각 요소를 변환하거나 원하는 부분만 걸러낼 때 유용합니다. Exclude와 Extract 같은 유틸리티 타입은 이러한 필터링을 간단하게 해주며, infer 키워드를 통해 복합 타입 내부 구조를 추출할 수도 있습니다. 조건문이 충분한 정보를 갖추지 못한 경우에는 연기(deferred) 상태로 처리됩니다.

1개의 좋아요