Mixin to implement list of classes to another unity class
class Disposal {
public isDisposal: boolean = false;
public active(): void {
this.isDisposal = true;
}
}
class Active {
public isActive: boolean = false;
public activate(): void {
this.isActive = true;
}
public deactivate(): void {
this.isActive = false;
}
}
class SuperClass implements Disposal, Active {
/** Disposal Interface */
public isDisposal: boolean = false;
public active: () => void;
/** Active Interface */
public isActive: boolean = false;
public activate: () => void;
public deactivate: () => void;
public isActivated(): boolean {
return this.isActive;
}
public isDisposaled(): boolean {
return this.isDisposal;
}
}
mixin(SuperClass, [Disposal, Active]);
function mixin(baseClass: any, implClasses: any[]) {
implClasses.forEach(implClass => {
Object.getOwnPropertyNames(implClass.prototype).forEach((property: string) => {
console.log(implClass.prototype);
baseClass.prototype[property] = implClass.prototype[property];
});
});
}
window['supa'] = new SuperClass();