Décorateurs de Classe

Constructor tracker

Track est une factory qui retourne un "decorator".

Le décorateur prend en paramètretarget, la référence de la classe et retourne une nouvelle classe.

const Track = () => {

    return (target) => {

        const Klass = function (...args) {
            console.log(`new ${target.name}(${args})`);
            target.constructor.apply(this, args);
        };

        Object.assign(Klass.prototype, target.prototype);

        return Klass as any;

    };

};

@Track()
class Customer {

    constructor(public firstName?: string) {
    }

}

let customer = new Customer(); // new Customer()
customer = new Customer('Foo'); // new Customer(Foo)

Custom element decorator

Cet exemple de factory prend des paramètres permettant de personnaliser le décorateur.

Essayez :

Puis copier le résultat JavaScript dans la console de votre navigateur et insérer des éléments <wt-angular-guide> sur votre page.

Mis à jour