타입 챌린지 89 - Required Keys

소파의 벨로그·2025년 6월 22일

타입챌린지

목록 보기
120/131

문제 링크

문제

모든 필수 키를 유니온으로 뽑아내는 상급 유틸 타입 RequiredKeys<T>를 구현하라라

Implement the advanced util type RequiredKeys<T>, which picks all the required keys into a union.

내 풀이

type RequiredKeysImplement<T,K = keyof T>=K extends keyof T?
  Pick<T,K> extends Required<Pick<T,K>>?K:never
  :never


type RequiredKeys<T> = RequiredKeysImplement<T>

GetRequired 풀이에서 나왔던 값을 그대로 사용했다.

추가적으로 사용처에서 구현용 제네릭을 사용하지 못하게 하기 위해 구현과 실제 타입을 분리했다.

0개의 댓글