주어진 타입 T에서 _로 시작하는 키를 지우세요
Remove the key starting with _ from given type T.
type PublicType<T extends object> = {[R in keyof T as R extends `_${string}`?never:R]:T[R]}
간단한 문제이다.
mapped type을 이용해 T를 순회하면서 {R:T[R]}형태로 반환한다.
이때, as를 이용해 R을 재매핑 해준다. R이 _${string}으로 시작한다면, never를 통해 키값으로 사용할 수 없게하고,
그렇지 않다면 R을 사용하는 방식으로 구현하였다.