typescript - Angular 7 - AVERTIZARE: detectată dependență circulară:
Deodată am început să înțeleg. Iată două avertismente pe care le primesc la sfârșitul comenzii ng serve:
WARNING in Circular dependency detected:
src\app\_services\ignore-interceptor.service.ts ->
src\app\_services\index.ts -> src\app\_services\ignore-
interceptor.service.ts
WARNING in Circular dependency detected:
src\app\_services\index.ts -> src\app\_services\ignore-
interceptor.service.ts -> src\app\_services\index.ts
i 「wdm」: Compiled with warnings.
Fragmentele mele de cod sunt:
ignore-interceptor.service.ts
import { UserService } from '../_services';
...
...
index.ts:
export * from './alert.service';
export * from './authentication.service';
export * from './user.service';
export * from './ignore-interceptor.service'
Dacă elimin import { UserService } din '../_services'; în ignore-interceptor.service.ts atunci nu mai primesc avertismente.
Vreo idee?
Mulțumesc
Răspuns #1
Pentru a evita un avertisment de dependență circulară în cazul în care importați servicii în alte servicii care sunt exportate de același index.ts, trebuie să importați dependența specifică în mod explicit după nume.
Așa:
import { UserService } from '../_services/user.service';
În loc de:
import { UserService } from '../_services';
Cu stimă
Răspunsul #2
În general, dependența circulară apare atunci când folosești fișierul index.ts pentru a exporta servicii și importi servicii în alte servicii care sunt exportate în același fișier index.ts.
Ca și cum ai importa UserService din index.ts (unde UserService a fost exportat din user-service) în fișierul ignore-interceptor.service, în același timp exportând atât 'user-service', cât și ignore-interceptor.service în fișierul index.ts.
Aici a fost creată dependența circulară a ta -
ignore-interceptor.service → index.ts → ignore-interceptor.serviceDeci, în acest caz trebuie să imporți serviciile dintr-un path absolut, mai degrabă decât din fișierul index.ts. De exemplu -
import { UserService } from '../_services/user.service';Mai bine aș recomanda să nu folosești index.ts pentru exportul și importul serviciilor.
Acest lucru este valabil și pentru utilizarea index.ts pentru exportarea și importarea componentelor, modelelor sau oricăror clase.
