/** * Utility to type a generic class type, eg. * * NOTE: If not dealing with generics just use `typeof ` instead * * ```js * class Base { * value?: T; * } * class Concrete extends Base {} * function factory(a: Class>): Base { * return new a(); * } * factory(Concrete); * ``` */ export interface Class extends Function { new (...args: any[]): T; }