Decorator
TypeScript 🔴 SeniorType : Pattern
Definition
Un decorator est une fonction speciale qui modifie ou annote une classe, methode, propriete ou parametre a la declaration. Il s'applique avec la syntaxe @decorator et permet la metaprogrammation.
Analogie
Un tampon qu'on appose sur un document pour lui donner un pouvoir special (certifie, confidentiel) sans changer le texte.
Exemple de code
function Log(target: any, key: string, desc: PropertyDescriptor) {
const orig = desc.value;
desc.value = function (...args: any[]) {
console.log(class="str">`${key} called`, args);
return orig.apply(this, args);
};
}Cas d'usage
Ajouter du logging, de la validation ou du caching a des methodes de classe de facon declarative (NestJS, Angular).