export type LooseDictionary = { [index in string]: any }; export type StringDictionary = Required< { [index in T]: string } >; // See: https://stackoverflow.com/a/49936686/7931540 export type DeepPartial = { [P in keyof T]?: T[P] extends Array ? Array> : T[P] extends ReadonlyArray ? ReadonlyArray> : DeepPartial; };