Sofiane Boumedine Lexique Dev

Decorator

TypeScript 🔴 Senior

Type : 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).

corepattern