UNPKG

@extra2001/compute-engine

Version:

Symbolic computing and numeric evaluations for JavaScript and Node.js

11 lines (10 loc) 484 B
/* 0.28.0 */ type MergeTypes<TypesArray extends any[], Res = {}> = TypesArray extends [ infer Head, ...infer Rem ] ? MergeTypes<Rem, Res & Head> : Res; /** @internal */ export type OneOf<TypesArray extends any[], Res = never, AllProperties = MergeTypes<TypesArray>> = TypesArray extends [infer Head, ...infer Rem] ? OneOf<Rem, Res | OnlyFirst<Head, AllProperties>, AllProperties> : Res; type OnlyFirst<F, S> = F & { [Key in keyof Omit<S, keyof F>]?: never; }; export {};