2017-02-22 23:16:20 +01:00
|
|
|
export function classExtender<TFunction>(superClass: TFunction, _instanceModifier: (instance: any, args: any[]) => void): TFunction {
|
|
|
|
return class decoratorFunc extends superClass {
|
|
|
|
constructor(...args: any[]) {
|
|
|
|
super(...args);
|
|
|
|
_instanceModifier(this, args);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
2018-11-03 01:29:05 +01:00
|
|
|
|
|
|
|
class MyClass { private x; }
|
|
|
|
export function classExtender2<TFunction extends new (...args: string[]) => MyClass>(superClass: TFunction, _instanceModifier: (instance: any, args: any[]) => void): TFunction {
|
|
|
|
return class decoratorFunc extends superClass {
|
|
|
|
constructor(...args: any[]) {
|
|
|
|
super(...args);
|
|
|
|
_instanceModifier(this, args);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|