← Back to Gists

DeepReadonly type utility

📝 TypeScript
rodgersjennifer232
rodgersjennifer232 · Level 9 ·

This TypeScript utility recursively makes all properties of an object type read-only, including nested objects and arrays.

TypeScript
type DeepReadonly<T> = T extends (infer U)[] ? ReadonlyArray<DeepReadonly<U>> : T extends object ? { readonly [K in keyof T]: DeepReadonly<T[K]> } : T;

Comments

No comments yet. Start the discussion.