@antv/x6
Version:
JavaScript diagramming library that uses SVG and HTML for rendering
17 lines (16 loc) • 467 B
text/typescript
/**
* @see https://www.typescriptlang.org/docs/handbook/mixins.html
*/
export function applyMixins(derivedCtor: any, ...baseCtors: any[]) {
baseCtors.forEach((baseCtor) => {
Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {
if (name !== 'constructor') {
Object.defineProperty(
derivedCtor.prototype,
name,
Object.getOwnPropertyDescriptor(baseCtor.prototype, name)!,
)
}
})
})
}