type Spread<T> = {
[P in keyof T]:T[P]
}
type SpreadReadOnly<T> = {
readonly [P in keyof T]:T[P]
}
type SpreadOptional<T> = {
[P in keyof T]?:T[P]
}
// type res = [1, 2, "haha"]
// 이때 P 는 '0' , '1' , '2'가 된다.
type res = Spread<[1,2,'haha']>
type res = Spread<{A:1,B:'HAHA'}>
// type res = {A:1,B:'HAHA'}
아니면 특정 Type의 key를 알고 있을때 아래와 같이 하면 됨
type CertainType = Korea['language'] // korean