T에서 U에 할당가능한 타입을 가진 프로퍼티의 세트를 골라라.
From T, pick a set of properties whose type are assignable to U.
type PickByType<T, U> = {[R in keyof T as T[R] extends U?R:never]:T[R]}
mapped type에서의 as를 사용해 T[R]이 U에 할당가능하면 R을 사용하고, 그렇지 않으면 T[R]을 사용하는 방식을 이용했다.
대부분의 풀이가 비슷했다