Saya memiliki dua proyek Angular menggunakan versi ini:
- 9.0.0-next.6
- 8.1.0
Dalam versi 9 saya menggunakan ini untuk menyediakan dan menyuntikkan window
objek:
@NgModule({
providers: [
{
provide: Window,
useValue: window
},
]
})
export class TestComponent implements OnInit {
constructor(@Inject(Window) private window: Window)
}
Itu bekerja dengan baik.
Mengambil pendekatan ini untuk versi 8 melemparkan peringatan dan kesalahan selama kompilasi:
Peringatan: Tidak dapat menyelesaikan semua parameter untuk TestComponent ...
Saya menyelesaikannya dengan menggunakan tanda kutip tunggal, seperti ini:
@NgModule({
providers: [
{
provide: 'Window',
useValue: window
},
]
})
export class TestComponent implements OnInit {
constructor(@Inject('Window') private window: Window)
}
Apa perbedaan antara kedua versi?
Apa perbedaan dalam Angular 8 dan 9 yang menyebabkan hal ini?