WithNullablesAsOptionalRecursively<T>: T extends any[] | ((...args) => any)
    ? T
    : T extends object
        ? {
            [K in keyof T as null extends T[K]
                ? K
                : never]?: WithNullablesAsOptionalRecursively<T[K]>
        } & {
            [K in keyof T as null extends T[K]
                ? never
                : K]: WithNullablesAsOptionalRecursively<T[K]>
        }
        : T

Type Parameters

  • T