UNPKG

635 BTypeScriptView Raw
1/**
2 * Utility type for a class which can be called in addion to being used as a constructor.
3 */
4interface Invokeable<Args extends Array<any>, Instance> {
5 (...args: Args): Instance;
6 new (...args: Args): Instance;
7}
8/**
9 * Wraps a constructor to not need the `new` keyword using a proxy.
10 * Only used for data types.
11 *
12 * @param {ProxyConstructor} Class The class instance to wrap as invocable.
13 * @returns {Proxy} Wrapped class instance.
14 * @private
15 */
16export declare function classToInvokable<Args extends Array<any>, Instance extends object>(Class: new (...args: Args) => Instance): Invokeable<Args, Instance>;
17export {};