Type Alias OptionalKeys<T>

OptionalKeys<T>: T extends unknown
    ? {
        [k in keyof T]-?: Record<KeyTypes, any> extends Pick<T, k>
            ? k
            : never
    }[keyof T]
    : never

Gets the optional keys of T.

🦴 utilities

Type Parameters

  • T
OptionalKeys<{ a: 1 }> // never
OptionalKeys<{ a?: 1, b: number }> // 'a'