Advanced Types

고급 타입 선택 기준

조건부 Props, 유틸리티 타입, 제네릭, 타입 가드, 유니온 검사는 서로 다른 문제를 해결합니다. 타입을 어렵게 만드는 대신 위험한 상태를 줄이는 데 씁니다.

exclusive props

동시에 오면 안 되는 속성

hrefonClick처럼 하나만 허용할 값은 유니온과 never로 막습니다.

shape reuse

기존 타입의 부분 재사용

Partial, Pick, Omit으로 API 응답과 편집 폼의 차이를 명시합니다.

data generic

데이터가 바뀌는 컴포넌트

테이블, 셀렉트, 리스트처럼 항목 타입이 매번 다르면 제네릭으로 렌더링 계약을 보존합니다.

runtime guard

외부 값의 안전한 축소

서버 응답이나 사용자 입력은 타입 가드로 확인한 뒤 세부 속성에 접근합니다.

state union

상태 분기 누락 방지

loading, success, error는 Discriminated Union과 assertNever로 빠진 분기를 찾습니다.

config literal

설정 객체의 정확도

as constsatisfies를 함께 써서 값의 리터럴성과 구조 검증을 모두 지킵니다.

팀 코드: 한 번에 이해하기 어려운 타입은 이름을 붙여 의도를 드러냅니다.

리팩토링: 런타임 테스트와 타입 검사를 함께 두면 분기 추가가 더 안전해집니다.