7af74fb07a
Also reworked creation of assignments, motions and users.
16 lines
527 B
TypeScript
16 lines
527 B
TypeScript
/**
|
|
* Mixes all own properties of all baseCtors into the derivedCtor.
|
|
* See https://www.typescriptlang.org/docs/handbook/mixins.html
|
|
*/
|
|
export function applyMixins(derivedCtor: any, baseCtors: any[]): void {
|
|
baseCtors.forEach(baseCtor => {
|
|
Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
|
|
Object.defineProperty(
|
|
derivedCtor.prototype,
|
|
name,
|
|
Object.getOwnPropertyDescriptor(baseCtor.prototype, name)
|
|
);
|
|
});
|
|
});
|
|
}
|