UNPKG

@holgerengels/compute-engine

Version:

Symbolic computing and numeric evaluations for JavaScript and Node.js

10 lines (9 loc) 473 B
/* 0.26.0-alpha2 */ type MergeTypes<TypesArray extends any[], Res = {}> = TypesArray extends [ infer Head, ...infer Rem ] ? MergeTypes<Rem, Res & Head> : Res; 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 {};