A provider is an instruction to the DI system on how to obtain a value for a dependency. Most of the time, these dependencies are services that you create and provide.
Provider is the one who serves an Injector and provides dependencies for each DI-token. We can configure injectors with providers and a provider links a token to a dependency. The real configuration for a provider is an object which describes a token and configuration for how to create the associated dependency. Basically it gives the how part of dependency, means how that dependency is created.
Based on different-different requirements, we create various types of providers. They are classified as:
Visit our tutorial video 0008-20- angular: types of providers and type provider to get more insight on this topic and find answers to questions like what are Providers and how they works in Angular.
Type Provider: It configures the Injector to return an instance of Type when `Type' is used as the token. Whenever component asks for class name, Type provider provides dependency for that corresponding class. In video, it’s nicely explained with help of Logger class, snapshot below: