devtypes - v1.1.0
    Preparing search index...

    Type Alias RequireAtLeastOne<T, K>

    RequireAtLeastOne: Pick<T, Exclude<keyof T, K>> & {
        [P in K]: Required<Pick<T, P>> & Partial<Pick<T, Exclude<K, P>>>
    }[K]

    Require at least one property from a set.

    Type Parameters

    • T

      Source object type

    • K extends keyof T = keyof T

      Keys where at least one must be present (defaults to all keys)

    Produces a union of object variants where at least one of the specified properties must be present.

    type Test = { a?: string; b?: number; };
    type Result = RequireAtLeastOne< Test, 'a' | 'b' >;
    // { a: string; b?: number; } | { a?: string; b: number; } | { a: string; b: number; }