Files
chartdb/src/types.d.ts
Guy Ben-Aharon a28fb4afa1 Table overlap indication (#237)
* add find overlapping functionality

* add indication for tables overlapping

* fix reorder overlap

* add loading diagram event

* fix hidden nodes overlap bug
2024-10-05 20:58:17 +03:00

16 lines
510 B
TypeScript

type PartialExcept<
ParameterType,
ParameterField extends keyof ParameterType,
> = Pick<ParameterType, ParameterField> &
Partial<Omit<ParameterType, ParameterField>>;
type Explode<T> = keyof T extends infer K
? K extends unknown
? { [I in keyof T]: I extends K ? T[I] : never }
: never
: never;
type AtMostOne<T> = Explode<Partial<T>>;
type AtLeastOne<T, U = { [K in keyof T]: Pick<T, K> }> = Partial<T> &
U[keyof U];
type ExactlyOne<T> = AtMostOne<T> & AtLeastOne<T>;