이 글은 제가 타입챌린지를 하면서 해석한 내용을 적는 글입니다. 틀린 내용이 있으면 댓글 달아주시면 감사하겠습니다.
제네릭 T의 readonly를 없애고 쓰기까지 가능하게 할 수 있게 만드는 속성이다.
ㅋㅋㅋ 바로 풀었다.
진짜 오잉? 하고 풀었다.
설마 되나 하고 -readonly를 앞에 붙여봤는데 되더라... ㅋㅋㅋㅋㅋㅋㅋ
-?도 되는데 이게 안돼? 하고 붙였는데... 됐다...
-? 는 위의 포스팅을 참고하자.
type Mutable<T extends object> = {
-readonly [P in keyof T]: T[P]
}
type A = Readonly<Mutable<Todo1>>
/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '@type-challenges/utils'
interface Todo1 {
title: string
description: string
completed: boolean
meta: {
author: string
}
}
type List = [1, 2, 3]
type cases = [
Expect<Equal<Mutable<Readonly<Todo1>>, Todo1>>,
Expect<Equal<Mutable<Readonly<List>>, List>>,
]
type errors = [
// @ts-expect-error
Mutable<'string'>,
// @ts-expect-error
Mutable<0>,
]
type Mutble<T extends object> : T 가 object를 상속받게하여 error를 방지한다.
-readonly [P in keyof T]: T[P] : T의 키값을 P라고 하는데, readonly를 제거해준다.
'Language > Typescript' 카테고리의 다른 글
타입챌린지 : 2946-ObjectEntries (medium) (0) | 2023.05.21 |
---|---|
타입챌린지 : 2852-OmitByType (medium) (0) | 2023.05.20 |
타입챌린지 : 2759-RequiredByKeys (medium) (0) | 2023.05.14 |
타입챌린지 : 2757-PartialByKeys (medium) (0) | 2023.05.11 |
타입챌린지 : 2693-EndsWith (medium) (0) | 2023.05.09 |