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!!

Hey! I'm Anil Singh. I author this blog. I'm Active Blogger, Programmer. I love learning new technologies, programming, blogging and participating the forum discussions more...
My Blogs - and
My Books - Interview Questions and Answers Books- Get Your Book in 15+ Digital Stores Worldwide..

You Might Also Like Powered by Blogger.
ASK Questions