clone-class
Version:
Clone an ES6 Class as Another Class Name for Isolating Class Static Properties.
46 lines • 1.27 kB
TypeScript
/**
* Huan LI <zixia@zixia.net>
*/
/**
* Constructor<T>
* https://stackoverflow.com/a/50116912/1123955
*
* See also:
* - https://github.com/Microsoft/TypeScript/issues/10262
* - https://github.com/Microsoft/TypeScript/issues/5843#issuecomment-290972055
* - https://github.com/Microsoft/TypeScript/pull/13743
*
* - Types for classes as values in TypeScript
* https://2ality.com/2020/04/classes-as-values-typescript.html
*/
/**
* Huan(202108) version:
*
* T: the `Class`
* P: `typeof Class`
*/
export declare type ClassInterface<C> = {
[key in keyof C]: C[key];
};
declare type InstanceInterface<I> = {
new (...args: any[]): I;
prototype: I;
};
declare type Constructor<I extends {} = {}> = InstanceInterface<I>;
/**
* Huan(202110): TypeError: Cannot read property 'valueDeclaration' of undefined #58
* https://github.com/huan/clone-class/issues/58
*
* - Update Oct 13: `typescript@4.5.0-beta` not fix
*/
/**
* Huan(202109) versino:
*/
/**
* https://github.com/wechaty/wechaty/issues/2090
*
* Warning: the InstantiatableClass returned by `constructor()` is not really instanciatable:
* it's just for typing compatible for some special conditions
*/
export type { Constructor, };
//# sourceMappingURL=constructor.d.ts.map