본문 바로가기
Language/Typescript

타입챌린지 : 7-Readonly (easy)

by hsloth 2023. 3. 1.

이 글은 제가 타입챌린지를 하면서 해석한 내용을 적는 글입니다. 틀린 내용이 있으면 댓글 달아주시면 감사하겠습니다.

 

https://github.com/type-challenges/type-challenges/blob/main/questions/00007-easy-readonly/README.md

 

GitHub - type-challenges/type-challenges: Collection of TypeScript type challenges with online judge

Collection of TypeScript type challenges with online judge - GitHub - type-challenges/type-challenges: Collection of TypeScript type challenges with online judge

github.com

 

type MyReadonly<T> = {
  readonly [P in keyof T]: T[P]
}

 

4-pick 과 매우 유사하다.

다만, 제네릭의 인자로 T하나만 받을 수 있다는 점이 다르다.

따라서 4-pick에 있던 K를 keyof T로 바꾸어서 앞에 readonly만 붙여주면 된다.

 

type MyReadonly : MyReadonly라는 타입을 정의한다.

<T> : 제네릭으로 T를 사용하겠다고 정의

readonly [P in keyof T]: T[P] : T의 key값들을 P라는 타입 파라미터로 정의한다. 그 값들은 reaonly이며, T[P]를 타입이다.

javascript 스타일로 말하자면, T = [key1: 1, key2: 2, key3: 3...] 에서 key1, key2, key3... 을 뽑아서 각각 readonly를 붙여주었다고 생각하면 된다. (정확하게는 좀 다르지만)

 

 

참고하면 좋은 챌린지 : https://suloth.tistory.com/25

 

타입챌린지 : 4-Pick (easy)

이 글은 제가 타입챌린지를 하면서 해석한 내용을 적는 글입니다. 틀린 내용이 있으면 댓글 달아주시면 감사하겠습니다. https://github.com/type-challenges/type-challenges/blob/main/questions/00004-easy-pick/README.m

suloth.tistory.com