21 lines
715 B
TypeScript
21 lines
715 B
TypeScript
export interface PrototypeType<T> extends Function {
|
|
prototype: T;
|
|
}
|
|
export interface ConstructorFunctionType<T = any> extends PrototypeType<T> {
|
|
new (...args: any[]): T;
|
|
}
|
|
export type ConstructorType<T = unknown, Static extends Record<string, any> = PrototypeType<T>> = (ConstructorFunctionType<T> | PrototypeType<T>) & {
|
|
[Key in keyof Static]: Static[Key];
|
|
};
|
|
/**
|
|
* 构造单例类的静态类.
|
|
* # Example:
|
|
* class A extends Singleton(){};
|
|
* //获得单例
|
|
* let a = A.GetInstance();
|
|
*/
|
|
export declare class Singleton {
|
|
protected constructor();
|
|
static GetInstance<T extends Singleton>(this: ConstructorType<T, typeof Singleton>): T;
|
|
}
|
|
//# sourceMappingURL=Singleton.d.ts.map
|