types-kit.requireddeep.md

September 4, 2023 ยท View on GitHub

Home > types-kit > RequiredDeep

RequiredDeep type

Make all properties (includes deep properties) in T required.

Signature:

export type RequiredDeep<T> = {
  [P in keyof T]-?: RequiredDeep<T[P]>
}

References: RequiredDeep

Example

interface Props {
      a?: {
        d?: number
      };
      b?: number;
      c?: number;
    };
   // Expect: { a: { d: number }; b: number; c: number; }
   type NewProps = RequiredDeep<Props>;