Home > types-kit > ReadonlyDeep
Make all properties (includes deep properties) in T readonly (add readonly decorator).
Signature:
export type ReadonlyDeep<T> = {
readonly [P in keyof T]: ReadonlyDeep<T[P]>
}References: ReadonlyDeep
interface Props {
a: {
d: number
};
b: number;
c: number;
};
// Expect: { readonly a: { readonly d: number }; readonly b: number; readonly c: number; }
type NewProps = ReadonlyDeep<Props>;