// tslint:disable: ban-types // https://stackoverflow.com/questions/36886082/abstract-constructor-type-in-typescript /** * A non-instantiable class */ export type AbstractConstructor = Function & { readonly prototype: T }; /** * an instantiable class */ export type Constructor = (new (...args: ReadonlyArray) => T);