type MergeTypes = TypesArray extends [infer Head, ...infer Rem] ? MergeTypes : Res; type OnlyFirst = F & { [Key in keyof Omit]?: undefined; }; /** * Exclusive one of types (no intersection allowed) * OneOf<[A, B]> = exclusive A OR B, where (all props of A) OR (all props of B) * A | B = inclusive A OR B, where all prop of A and any prop of B and vice versa */ export type OneOf> = TypesArray extends [infer Head, ...infer Rem] ? OneOf, AllProperties> : Res; export type SimpleOneOf = OnlyFirst | OnlyFirst; export {}; /** * Search in spec oneOf * go one by one and fix one missing, but before there need to be solution for it * * current ts oneOf produce [key: string]: undefined; [key: number]: undefined; artifacts */ //# sourceMappingURL=helpless.d.ts.map