Skip to content

Latest commit

 

History

History
32 lines (23 loc) · 756 Bytes

File metadata and controls

32 lines (23 loc) · 756 Bytes

Home > types-kit > ReadonlyDeep

ReadonlyDeep type

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

Example

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>;