1.0.0 • Published 5 years ago
@writetome51/get-class-modification-decorator v1.0.0
getClassModificationDecorator( modifyInstance: ( instance, decoratorArgs: any[] ) => void): (...decoratorArgs) => ClassDecorator
Returns a TypeScript ClassDecorator factory. You set the decorator behavior with the
callback modifyInstance(). The decorator creates a new constructor for the class
being decorated. The new constructor first calls the original, then the class instance
is passed into modifyInstance(), where you manipulate it however you want. (The
prototype chain is kept intact, and the instanceof operator will still work.)
Examples
// Here we make a decorator that adds properties:
export const add_properties = getClassModificationDecorator(
(instance, decoratorArgs: [object]) => {
let newProperties = decoratorArgs[0];
Object.assign(instance, newProperties);
}
);
// Now use it:
@add_properties({hair: 'amazing', age: 50, income: 200000, wife: 'hot'})
export class Boss {
}
@add_properties({address: '100 fleet street', income: 600000})
export class CEO extends Boss {
}
let ceo = new CEO();
console.log(ceo);
/*************
CEO {
age: 50,
address: '100 fleet street',
hair: 'amazing',
income: 600000,
wife: 'hot'
}
**************/Installation
npm i @writetome51/get-class-modification-decoratorLoading
import {getClassModificationDecorator}
from '@writetome51/get-class-modification-decorator';