Readonly - easy- [Type Challenge]

강성훈·2023년 1월 22일
0

type-challenges

목록 보기
2/20
post-thumbnail

by Anthony Fu @antfu

T의 모든 프로퍼티를 읽기 전용(재할당 불가)으로 바꾸는 내장 제네릭 MyReadonly<T> 제작

interface Todo {
  title: string
  description: string
}

const todo: MyReadonly<Todo> = {
  title: "Hey",
  description: "foobar"
}

todo.title = "Hello" // Error: cannot reassign a readonly property
todo.description = "barFoo" // Error: cannot reassign a readonly property

다음과 같이 타입을 읽기 전용 타입으로 바꿔야 한다.
먼저 타입 변수는 하나를 받아한다.

type MyReadOnly<T> = ??

이제 모든 타입을 readonly를 붙여주면 만들고자 하는 타입으로 변한다.

type MyReadonly<T> = { readonly [t in keyof T]: T[t] };
profile
고등학생 주니어 개발자

0개의 댓글