Custom Decorator

NestJS 🟡 Mid

Définition

Décorateur personalise créé avec createParamDecorator ou applyDecorators pour extraire des données ou combiner des décorateurs existants.

Analogie

Comme créer un raccourci clavier personnalise qui combine plusieurs actions en un seul geste.

Exemple de code

export const CurrentUser = createParamDecorator(
  (data: unknown, ctx: ExecutionContext) => {
    const request = ctx.switchToHttp().getRequest();
    return request.user;
  },
);

Cas d'usage

Extraire l'utilisateur courant du token JWT dans chaque handler sans dupliquer le code.

Anti-pattern

Accéder a request.user directement partout au lieu de créer un décorateur réutilisable.
#core#interview

En entretien

  1. Explique-moi comment tu créerais un décorateur pour récupérer l'utilisateur courant dans un handler.

    J'utilise createParamDecorator, qui reçoit l'ExecutionContext, récupère la request via switchToHttp().getRequest() et retourne request.user. Ça évite de dupliquer l'accès à request.user dans chaque handler.

  2. Quel est l'intérêt d'un décorateur personnalisé par rapport à accéder directement à request.user ?

    C'est comme créer un raccourci clavier qui combine plusieurs actions en un seul geste : on factorise la logique d'extraction une seule fois. L'anti-pattern est justement d'accéder à request.user directement partout au lieu de créer ce décorateur réutilisable.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre