问题 #
实现一个通用的 Mutable<T>
类型,其中 T
可以是任意类型(不是只读)。
interface Todo {
readonly title: string
readonly description: string
readonly completed: boolean
}
type MutableTodo = Mutable<Todo> // { title: string; description: string; completed: boolean; }
解答 #
type Mutable<T> = { -readonly [K in keyof T]: T[K] }
拆分 #
- 可以通过
+/-
移除添加修饰符 - 可以通过
-readonly
移除readonly