type PayloadPrimitives = boolean | null | number | string; type PayloadArray = (PayloadPrimitives | Payload)[]; type PayloadValid = PayloadPrimitives | PayloadArray | Payload; export interface Payload { [key: string]: PayloadValid | T; }