What are @Injectable Decorators ?

@Injectable is a decorator in Angular used to mark a class as an injectable that allows it to be provided and injected as a dependency within other Angular components, services, or modules.

Syntax:

@Injectable({
providedIn: 'root',
})
export class ServiceClass {
constructor() {}
}

Features of @Injectable decorators

  • Singleton Pattern: Creates a single instance of a service to be shared across the application.
  • Reusability: Services are designed to encapsulate certain capabilities, making integration and reuse simple.
  • Lazy Loading: Optimizes performance by loading services only when needed, reducing initial load times.

Difference between @Injectable and @Inject Decorators

In Angular, decorators play an important role in defining and managing dependencies within the application. Two commonly used decorators are @Injectable and @Inject. While they both relate to dependency injection, they serve different purposes and are applied to different elements within an Angular application.

Table of Content

  • What are @Injectable Decorators ?
  • What are @Inject Decorators ?
  • Difference between @Injectable and @Inject decorators
  • Conclusion

Similar Reads

What are @Injectable Decorators ?

@Injectable is a decorator in Angular used to mark a class as an injectable that allows it to be provided and injected as a dependency within other Angular components, services, or modules....

Steps to Create Angular Project

Step 1: Create a new Angular Project using the following command...

What are @Inject Decorators ?

@Inject is a decorator used to specify the token (dependency) to be injected into a class constructor or a provider definition. It specifies dependencies explicitly for Angular’s DI system when automatic resolution is not possible, helping to resolve dependencies based on the specified token....

Difference between @Injectable and @Inject decorators

Feature @Injectable Decorator @Inject Decorator Purpose Marks a class as eligible for dependency injection. Specifies a dependency token for manual injection. Usage Applied to service classes or providers. Applied to constructor parameters to specify injection dependencies. Dependency Scope Defines the metadata needed for DI resolution. Specifies the exact dependency to be injected. Dependency Type Marks a class as a candidate for DI resolution. Directs DI to inject a specific dependency instance. Example @Injectable({ providedIn: ‘root’ }) constructor(@Inject(MyDependency) private dependency: MyDependency)...

Conclusion

In summary, @Injectable is used to mark a class as injectable, that allows it to be managed by Angular’s dependency injection system, while @Inject is used to specify the token (dependency) to be injected into a class constructor or a provider definition. Understanding the difference between these decorators is important for effectively managing dependencies and implementing dependency injection in Angular applications....

Contact Us