MST

星途 面试题库

面试题:TypeScript类型体操之深度Readonly

在TypeScript中,有一个复杂类型`NestedObject`定义如下: ```typescript type NestedObject = { a: string; b: number; c: { d: boolean; e: { f: string[]; } } }; ``` 请实现一个`DeepReadonly`类型,它能将`NestedObject`及其所有嵌套的对象属性都变成只读的。例如: ```typescript type ReadonlyNestedObject = DeepReadonly<NestedObject>; // 期望ReadonlyNestedObject的所有属性都为只读 ```
41.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
type DeepReadonly<T> = {
    readonly [P in keyof T]: T[P] extends object ? DeepReadonly<T[P]> : T[P];
};