/** * Creates interfaces union where all fields from all variants are present. */ export type InterfaceUnion = C extends undefined ? InterfaceUnion2 : D extends undefined ? InterfaceUnion3 : E extends undefined ? InterfaceUnion4 : F extends undefined ? InterfaceUnion5 : G extends undefined ? InterfaceUnion6 : H extends undefined ? InterfaceUnion7 : I extends undefined ? InterfaceUnion8 : J extends undefined ? InterfaceUnion9 : InterfaceUnion10; type InterfaceUnion2 = (A & UndefinedDifference) | (B & UndefinedDifference); type InterfaceUnion3 = (A & UndefinedDifference & UndefinedDifference) | (B & UndefinedDifference & UndefinedDifference) | (C & UndefinedDifference & UndefinedDifference); type InterfaceUnion4 = (A & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (B & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (C & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (D & UndefinedDifference & UndefinedDifference & UndefinedDifference); type InterfaceUnion5 = (A & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (B & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (C & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (D & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (E & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference); type InterfaceUnion6 = (A & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (B & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (C & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (D & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (E & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (F & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference); type InterfaceUnion7 = (A & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (B & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (C & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (D & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (E & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (F & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (G & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference); type InterfaceUnion8 = (A & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (B & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (C & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (D & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (E & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (F & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (G & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (H & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference); type InterfaceUnion9 = (A & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (B & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (C & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (D & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (E & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (F & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (G & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (H & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (I & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference); type InterfaceUnion10 = (A & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (B & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (C & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (D & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (E & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (F & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (G & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (H & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (I & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference) | (J & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference & UndefinedDifference); type UndefinedDifference = { [Key in Exclude]?: undefined; }; export type WholeOrPartial = Type | { [Key in keyof Type]?: Type[Key]; }; export type WholeOrEmpty = Type | { [Key in keyof Type]?: undefined; }; export {};