Avatar ·

¿Para qué sirve providedIn en el decorador Injectable al crear servicios en Angular 6?

¡Hola a todos! Empecé a estudiar Angular 6 y TypeScript, y al generar un servicio mediante CLI noté algo: ```typescript @Injectable({ providedIn: 'root' }) export class MyService { constructor() { } } ``` Antes, en Angular 5, simplemente escribía `@Injectable()` sin parámetros, y luego registraba el servicio en el módulo en la sección `providers`. Ahora el CLI genera este `providedIn: 'root'`. Estoy un poco confundido. Así lo hacía antes: ```typescript // my.service.ts @Injectable() export class MyService { } // app.module.ts @NgModule({ providers: [MyService] }) export class AppModule { } ``` Y ahora el nuevo enfoque: ```typescript // my.service.ts @Injectable({ providedIn: 'root' }) export class MyService { } ``` Preguntas: 1. ¿Qué hace exactamente `providedIn: 'root'`? ¿Es solo un reemplazo del registro en el módulo? 2. Si especifico `providedIn: 'root'`, ¿aún necesito agregar el servicio en `providers` del módulo? 3. ¿Qué pasa si especifico `provid