Декоратор класса TypeScript, который изменяет экземпляр объекта

Я делаю плагин для Aurelia и мне нужен декоратор класса, который

добавляет атрибуты к новому экземпляру объекта ивызывает внешнюю функцию с новым объектом в качестве аргумента.

Я просмотрел примеры и пока собрал (псевдо-код)

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;
}

но

Я не совсем понимаю детали здесь (или что на самом деле нужно), иэто может не работать должным образом, так как я получаю ошибки Aurelia при использовании объектов, созданных из классов с этим декоратором (и я подозреваю, что это мой декоратор, а не фреймворк Aurelia, который глючит).

Любая помощь и объяснения будут с благодарностью!

Ответы на вопрос(2)

Ваш ответ на вопрос