Decorator (legacy + stage 3)

TypeScript 🔴 Senior

Definition

Syntaxe @decorator pour modifier ou annoter des classes et leurs membres. TS supporte les decorateurs legacy (experimentalDecorators) et le standard TC39 stage 3 (TS 5.0+).

Analogie

Comme un cadre autour d'un tableau — il enveloppe l'oeuvre sans la modifier, en ajoutant du contexte.

Exemple de code

// Stage 3 decorator (TS 5.0+)
function log(_target: any, ctx: ClassMethodDecoratorContext) {
  console.log(`Decorating ${String(ctx.name)}`);
}
class Api {
  @log greet() { return "hi"; }
}

Cas d'usage

AOP (logging, auth, validation) dans les frameworks comme Angular, NestJS ou TypeORM.

Anti-pattern

Mixer les decorateurs legacy et stage 3 dans le meme projet — incompatibilite et confusion.

Termes lies

#advanced#pattern#framework