generator-begcode
Version:
Spring Boot + Angular/React/Vue in one handy generator
18 lines (15 loc) • 612 B
TypeScript
/**
* Based on https://github.com/sindresorhus/type-fest/issues/610#issuecomment-2398118998
*/
import type { EmptyObject, IsNever, KeysOfUnion, Simplify } from 'type-fest';
type _MergeUnionKnownKeys<BaseType, Keys extends keyof BaseType = keyof BaseType> = {
[K in Keys]: Keys extends K ? BaseType[Keys] : never;
};
export type MergeUnion<BaseType> =
IsNever<BaseType> extends false
? Simplify<
_MergeUnionKnownKeys<BaseType> & {
[K in KeysOfUnion<BaseType>]?: BaseType extends object ? (K extends keyof BaseType ? BaseType[K] : never) : never;
}
>
: EmptyObject;