Decorator (legacy + stage 3)
TypeScript 🔴 SeniorDefinition
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.