Only shallow readonly
type DeepReadonly<T> = { readonly [P in keyof T]: T[P] extends object ? DeepReadonly<T[P]> : T[P]; };
Readonly<type>
utility type readonly to construct a type with all properties set to readonly
Seonglae Cho
Seonglae Chotype DeepReadonly<T> = { readonly [P in keyof T]: T[P] extends object ? DeepReadonly<T[P]> : T[P]; };
Readonly<type>