타입 챌린지 90 - Optional Keys

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

타입챌린지

목록 보기
121/131

문제 링크

문제

모든 옵셔널 키를 유니온으로 뽑아내는 상급 유틸 타입 OptionalKeys<T>를 구현하라

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

내 풀이

type OptionalKeysImplement<T,K = keyof T>=
  K extends keyof T?
    Partial<Pick<T,K>> extends Pick<T,K>?K:never
  :never

type OptionalKeys<T> = OptionalKeysImplement<T>

get optional 풀이와 비슷하다.

다만 다른 점은, 사용처에서 구현용 제네릭을 사용하지 못하게 하기 위해 구현과 실제 타입을 분리했다.

0개의 댓글