type ValueOf = D[keyof D]; type Unpacked = D extends unknown[] | readonly unknown[] ? D[number] : D; type Nullable = D | null; type LooseObject = { // eslint-disable-next-line @typescript-eslint/no-explicit-any [key: string]: any; }; type StrictObject = { [key: string]: T; }; interface DataWrapper { data: T; } interface DataWrapperWithTotal { data: T[]; total: number; } type Override = T & Omit; type Sure = Exclude; // eslint-disable-next-line @typescript-eslint/no-explicit-any type GenericFunction = (...args: any[]) => T;