Deoarece TypeScript elimină interfețele în timpul compilării JavaScript (Type Erasure), containerul IoC din NestJS nu poate detecta automat dependența doar pe baza tipului interfeței. În aceste cazuri, decoratorul @Inject('TOKEN') permite specificarea explicită a identificatorului de provider.
Tokenurile pot fi șiruri de caractere (String), simboluri unice (Symbol) sau chiar instanțe de clase abstracte, asigurând o decuplare totală a codului de implementările concrete.
Exemplu: Injectare provider pe bază de Token String
import { Injectable, Inject } from '@nestjs/common';
export interface NotificationSender {
send(to: string, message: string): Promise;
}
@Injectable()
export class OrderService {
constructor(
@Inject('NOTIFICATION_SERVICE')
private readonly notifier: NotificationSender,
) {}
async completeOrder(email: string) {
await this.notifier.send(email, 'Comanda dvs. a fost procesată cu succes!');
}
}
Întrebări & Exemple de Cod:
Decoratorul @Inject() și Tokenuri de ProvideriAi o nelămurire despre utilizarea comenzii
Decoratorul @Inject() și Tokenuri de Providerisau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.