Utility TypeScript @ 2.0.0-beta
    Preparing search index...

    Type Alias RecursiveRequired<T>

    RecursiveRequired: {
        [K in keyof T]-?: Required<T>[K] extends
            | number
            | null
            | string
            | undefined
            | AnyClass
            | Function
            | Date
            ? Required<T>[K]
            : Required<T>[K] extends (infer I)[]
                ? object extends I ? RecursiveRequired<I>[] : I[]
                : Required<T>[K] extends object
                    ? {
                        [S in keyof Required<T>[K]]-?: RecursiveRequired<Required<T>[K]>[S]
                    }
                    : Required<T>[K]
    }

    Similar to the default Required, but this also makes any child objects Required.

    Type Parameters

    • T

      Type to require.