둘 중 하나만 허용
링크 버튼처럼 조합 금지가 핵심이면 유니온과 never로
상태를 분리한다.
조건부 타입, 유틸리티 타입, 제네릭, 타입 가드, satisfies는 서로 대체재가 아니라 다른 실패를 막는 도구다.
링크 버튼처럼 조합 금지가 핵심이면 유니온과 never로
상태를 분리한다.
폼 초깃값, 카드 표시용 데이터처럼 원본에서 일부만 쓰면 Pick, Omit, Partial을 쓴다.
Utility Types리스트, 테이블, 셀 렌더러처럼 입력 타입과 콜백 타입이 함께 움직이면 제네릭이 맞다.
<T> contractAPI 응답, 라우터 상태, 파일 입력처럼 런타임 값은 타입 가드로 좁힌 뒤 렌더링한다.
type guard라우트와 권한 맵은 구조 검증과 자동완성을 동시에 얻도록 as const와 satisfies를 함께 둔다.
as const + satisfies