문제
배열(튜플)을 받아, 각 원소의 값을 key/value로 갖는 오브젝트 타입을 반환하는 타입을 구현하세요.
예시
const tuple = ['tesla', 'model 3', 'model X', 'model Y'] as const
type result = TupleToObject<typeof tuple> // expected { tesla: 'tesla', 'model 3': 'model 3', 'model X': 'model X', 'model Y': 'model Y'}
풀이
배열에 있는 모든 값들을 얻어 새 객체의 키와 값으로 만들어야합니다.T[number]
(인덱스 타입)을 이용해서 기존의 원소를 키와 값으로 하는 새로운 타입을 만들 수 있습니다.
type TupleToObject<T extends readonly PropertyKey[]> = {[K in T[number]] : K}
'TypeScript > Type Challenges' 카테고리의 다른 글
[43] Exclude (0) | 2022.11.26 |
---|---|
[18] Length of Tuple (0) | 2022.11.19 |
[14] easy first (0) | 2022.11.16 |
[7] Readonly (0) | 2022.11.02 |
[4] Pick (0) | 2022.10.29 |