type Person<T> = T extends infer R ? R : unknown;
type 새타입 = Person<string> // 새타입은 string 타입입니다
조건문에 사용하는 특별한 키워드
T에서 유추해서 R이라는 변수에 집어넣게 하는 키워드
타입파라미터에서 타입을 추출해서 쓰고싶을 때 쓰는 키워드
type 타입추출<T> = T extends (infer R)[] ? R : unknown;
type NewType = 타입추출< boolean[] > // NewType 은 boolean 타입입니다
이런식으로 배열 안에 있는 타입만 빼서도 사용가능