Decorador de clase TypeScript que modifica la instancia del objeto

Estoy haciendo un complemento para Aurelia y necesito un decorador de clase que

agrega atributos a la nueva instancia de objeto, yllama a una función externa con el nuevo objeto como argumento.

He buscado ejemplos y hasta ahora he reunido (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;
}

pero

No tengo del todo claros los detalles aquí (o lo que realmente se necesita), ypuede que no funcione correctamente ya que obtengo errores de Aurelia cuando uso objetos instanciados de clases con este decorador (y sospecho que es mi decorador en lugar del marco de Aurelia el que tiene errores).

Cualquier ayuda y explicación sería muy apreciada!

Respuestas a la pregunta(2)

Su respuesta a la pregunta