forwardRef
NestJS 🟡 MidDéfinition
Fonction utilitaire qui résout les dépendances circulaires en retardant la résolution de la référence. Utilise un wrapper de fonction pour différer l'évaluation.
Analogie
Comme dire 'je te présenterai mon collègué quand il arrivera' plutôt que d'exiger sa présence immédiate.
Exemple de code
@Injectable()
export class CatService {
constructor(
@Inject(forwardRef(() => DogService))
private dogService: DogService,
) {}
}
Cas d'usage
Résoudre les dépendances circulaires entre deux services ou modules qui se réfèrent mutuellement.
Anti-pattern
Termes liés
En entretien
Explique-moi ce que fait forwardRef concrètement.
C'est une fonction utilitaire qui résout les dépendances circulaires en retardant la résolution de la référence via un wrapper de fonction, un peu comme dire 'je te présenterai mon collègue quand il arrivera' plutôt que d'exiger sa présence immédiate. Elle sert typiquement dans @Inject(forwardRef(() => DogService)) pour deux services qui se réfèrent mutuellement.
Est-ce que forwardRef doit devenir ton réflexe dès qu'un cycle apparaît ?
Non, l'anti-pattern décrit c'est justement d'utiliser forwardRef comme solution par défaut au lieu de repenser l'architecture pour éliminer les cycles. C'est un outil de dépannage, pas une solution d'architecture pérenne.
Fiche mise à jour le 2026-09-27