Angular 2 @Injectable () vs. @Inject() ?

Angular 2 @Injectable() vs. @Inject() ?

Why @Injectable ()?

@Injectable () marks a class as available to an injector for instantiation. An injector reports an error when trying to instantiate a class that is not marked as @Injectable ().

Injectors are also responsible for instantiating components. At the run-time the injectors can read class metadata in the JavaScript code and use the constructor parameter type information to determine what things to inject.

Example as,
import { Injectable, InjectionToken } from '@angular/core';
import { Http, Response } from '@angular/http';

export class UserService {
    constructor(private _http: Http) {

    getAPIUsers(apiUrl) {
        return this._http.get(apiUrl).map((data: Response) => data.json());

Why @Inject()?

Angular 2 @Inject() is a special technique for letting Angular know that a parameter must be injected.

Example as,
import { Inject} from '@angular/core';
import { Http, Response } from '@angular/http';

class UserService {
    users: Array<any>;

    constructor( @Inject(Http) _http: Http) {       

Angular2 - Related Concepts
When use @Inject()? When Use @Injectable ()? @Injectable() vs. @Inject() ?
How to use Dependency Injection (DI) correctly in Angular 2? Dependency Injection (DI) in Angular 2?

I hope you are enjoying with this post! Please share with you friends. Thank you!!

Anil Singh is an author, tech blogger, and software programmer. Book writing, tech blogging is something do extra and Anil love doing it. For more detail, kindly refer to this link..

My Tech Blog -
My Books - Book 1 and Book 2

Angular 2 @Injectable() vs. @Inject() ? Angular 2 @Injectable() vs. @Inject() ? Reviewed by Anil Singh on 4:02 AM Rating: (5) Powered by Blogger.