type-plus
    Preparing search index...

    Type Alias Merge<A, B, Options>

    Merge: Or<
        IsAny<A>,
        IsAny<B>,
        {
            $else: Or<
                IsNever<A>,
                IsNever<B>,
                {
                    $else: IsDisjoint<A, B> extends true
                        ? A & B
                        : [keyof A, keyof B] extends [
                            infer KA extends KeyTypes,
                            infer KB extends KeyTypes,
                        ]
                            ? IsLiteral<KA> extends true
                                ? IsLiteral<KB> extends true
                                    ? [OptionalKeys<(...)>, OptionalKeys<(...)>] extends [
                                        infer PKA extends (...),
                                        infer PKB extends (...),
                                    ]
                                        ? (...) & (...) & (...) & (...)
                                        : never
                                    : ((...) extends (...) ? (...) : (...)) & (
                                        (...) extends (...) ? (...) : (...)
                                    ) & ((...) extends (...) ? (...) : (...))
                                : IsLiteral<KB> extends true
                                    ? { [k in Exclude<(...), (...)>]: (...)[(...)] } & {
                                        [k in keyof (...)]: (...)[(...)]
                                    }
                                    : ((...) extends (...) ? (...) : (...)) & (
                                        (...) extends (...) ? (...) : (...)
                                    ) & ((...) extends (...) ? (...) : (...))
                            : never;
                    $then: never;
                },
            >;
            $then: any;
        },
    >

    ⚗️ transform 🔢 customizable

    Merges type A and type B.

    This type performs the same operations as { ...a, ...b } but at the type level.

    It handles cases like A or B are Record, joining between required and optional props, etc.

    Type Parameters