UNPKG

@cuppachino/type-space

Version:

A collection of type utilities for TypeScript.

19 lines (18 loc) 489 B
/** * Represents the constructor of a class. * * @example * ```ts * function create<T, A extends any[]>(Class: Constructor<T, A>, ...args: A): T { * return new Class(...args) * } * * class Package<T extends string> { * constructor(public name: T) {} * } * * const instance = create(Package, '@cuppachino/type-space' as const) * console.log(instance.name) // '@cuppachino/type-space' * ``` */ export type Constructor<T, A extends any[] = any[]> = new (...args: A) => T;