Skip to content

Latest commit

 

History

History
27 lines (20 loc) · 2.5 KB

File metadata and controls

27 lines (20 loc) · 2.5 KB

Readonly 2 medium #readonly #object-keys

by Anthony Fu @antfu

Take the Challenge    简体中文 日本語

Implement a generic MyReadonly2<T, K> which takes two type argument T and K.

K specify the set of properties of T that should set to Readonly. When K is not provided, it should make all properties readonly just like the normal Readonly<T>.

For example

interface Todo {
  title: string
  description: string
  completed: boolean
}

const todo: MyReadonly2<Todo, 'title' | 'description'> = {
  title: "Hey",
  description: "foobar",
  completed: false,
}

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

Back Share your Solutions Check out Solutions

Related Challenges

7・Readonly 9・Deep Readonly