T를 조건에 넣기
호출자가 넘긴 타입 변수를 extends 조건의 왼쪽에 두고 결과를 나눕니다.
T extends Array<any>
제네릭 타입 변수에 조건부 타입을 결합하면 배열 원소, 함수 반환값, union 멤버를 호출자가 준 타입에 맞춰 계산할 수 있습니다.
호출자가 넘긴 타입 변수를 extends 조건의 왼쪽에 두고 결과를 나눕니다.
T extends Array<any>
T가 union이면 각 멤버별로 조건이 적용되어 결과도 union으로 합쳐집니다.
T extends U
Promise, Array, Function 같은 감싼 구조에서 필요한 타입을 꺼냅니다.
infer Item
반복되는 타입 계산을 별칭으로 묶어 프로젝트 전반에서 재사용합니다.
Flatten<T>