T의 형태로 분기
T가 배열인지 함수인지 객체인지에 따라 다른 타입을 선택합니다.
T extends any[] ? ...
제네릭 조건부 타입은 입력 타입 T의 형태를 검사해 함수 반환, 배열 요소, nullable 제거 같은 결과 타입을 계산합니다.
T가 배열인지 함수인지 객체인지에 따라 다른 타입을 선택합니다.
T extends any[] ? ...
제네릭 조건부 타입은 유니온 입력을 각 멤버로 나누어 처리할 수 있습니다.
T extends null ? never : T
Promise, 배열, 함수 반환처럼 감싸진 타입을 추론해 이름 붙입니다.
T extends Promise<infer R>
응답 타입에서 data만 뽑거나 null을 제거하는 규칙을 재사용합니다.
Unwrap<T>
조건부 타입과 제네릭을 함께 쓰면 타입을 입력받아 새 타입을 계산하는 추상화를 만들 수 있습니다.