Decorador de classe TypeScript que modifica a instância do objeto
Estou criando um plugin para Aurelia e preciso de um decorador de classe que
adiciona atributos à nova instância do objeto echama uma função externa com o novo objeto como argumento.Examinei exemplos e até agora reuni (código "pseudo-ish")
return function addAndCall(target: any): any {
var original = target;
var newConstructor = function (...args) {
original.apply(this, args);
this.newAttribute = "object instance value";
ExternalModule.externalFunction(this);
};
newConstructor.prototype = Object.create(original.prototype);
newConstructor.prototype.constructor = original;
return <any>newConstructor;
}
mas
Não sou totalmente claro sobre os detalhes aqui (ou o que é realmente necessário), epode não funcionar corretamente, pois estou recebendo erros do Aurelia ao usar objetos instanciados de classes com esse decorador (e suspeito que seja o meu decorador, e não a estrutura do Aurelia que está com bugs).Qualquer ajuda e explicação seria muito apreciada!