While defining a service / service class in angular, class is decorated with @injectable() decorator.
As per angular guidebook: @Injectable() marks a class as available to an injector for instantiation.
Then why it is not needed while creating a component?
From the Angular documentation (emphasis mine):
Injectors are also responsible for instantiating components like HeroesComponent. So why doesn't HeroesComponent have @Injectable()?
You can add it if you really want to. It isn't necessary because the HeroesComponent is already marked with @Component, and this decorator class (like @Directive and @Pipe, which you learn about later) is a subtype of @Injectable(). It is in fact @Injectable() decorators that identify a class as a target for instantiation by an injector.
In other words, by marking a class as being a component, directive or pipe, you're implicitly marking them as injectable as well.