@nevware21/ts-utils
    Preparing search index...

    Type Alias DeepRequired<T>

    DeepRequired: T extends Function
        ? T
        : T extends ReadonlyArray<infer U>
            ? ReadonlyArray<DeepRequired<NonNullable<U>>>
            : T extends object
                ? { [P in keyof T]-?: DeepRequired<NonNullable<T[P]>> }
                : NonNullable<T>

    Represents a recursive required type where all nested properties are required.

    Type Parameters

    • T

      The type to transform.

    0.14.0

    interface Options {
    timeout?: number;
    retry?: {
    count?: number;
    delay?: number;
    };
    }

    // After applying defaults every field is guaranteed to be present
    function withDefaults(opts: Options): DeepRequired<Options> {
    return {
    timeout: opts.timeout ?? 5000,
    retry: {
    count: opts.retry?.count ?? 3,
    delay: opts.retry?.delay ?? 1000
    }
    };
    }