type-challenges
type-challenges copied to clipboard
9 - 深度 Readonly
解答:通过判断 value 的类型,来递归添加 readonly
type DeepReadonly<T> = {
readonly [P in keyof T]: T[P] extends Object ? T[P] extends Function ? T[P]: DeepReadonly<T[P]> : T[P]
}
// 也可以用 keyof T[P] extends never 来判断