Що таке впровадження залежностей в Angular і навіщо воно?
Ви оголошуєте, що потрібно класу, в його конструкторі, і Angular це подає, замість того щоб клас сам конструював свої залежності. Існує заради того, щоб одному й тому самому компоненту можна було дати справжній сервіс у застосунку і підставний у тесті, не змінюючи його код. providedIn: 'root' робить сервіс синглтоном на весь застосунок.