generic transforms

제네릭 조건부 타입 조합

제네릭 조건부 타입은 입력 타입 T의 형태를 검사해 함수 반환, 배열 요소, nullable 제거 같은 결과 타입을 계산합니다.

타입 변수 검사

T의 형태로 분기

T가 배열인지 함수인지 객체인지에 따라 다른 타입을 선택합니다.

T extends any[] ? ...
분산 효과

유니온 멤버별 계산

제네릭 조건부 타입은 유니온 입력을 각 멤버로 나누어 처리할 수 있습니다.

T extends null ? never : T
infer 조합

안쪽 타입 꺼내기

Promise, 배열, 함수 반환처럼 감싸진 타입을 추론해 이름 붙입니다.

T extends Promise<infer R>
실전 변환

도메인 모델 정리

응답 타입에서 data만 뽑거나 null을 제거하는 규칙을 재사용합니다.

Unwrap<T>
분산 의도 유니온을 나누어 처리할지 전체로 비교할지 먼저 결정합니다.
추론 위치 infer는 조건부 타입의 extends 절 안에서 추론할 위치를 잡습니다.
복잡도 관리 중첩 조건은 작은 타입 별칭으로 나누어 읽기 쉽게 만듭니다.

조건부 타입과 제네릭을 함께 쓰면 타입을 입력받아 새 타입을 계산하는 추상화를 만들 수 있습니다.