export type Union = Ts extends [infer T] ? T : Ts extends [infer T, ...infer Rs] ? T | Union : never; export type AnyClass = { new (...args: any[]): any; };