What is the difference between @Inject and @Injectable in Angular 2 typescript : <p>I don't understand When to use @Inject and when to use @Injectable ?</p>

<pre><code>  import {Component, Inject, provide} from '@angular/core';
    import {Hamburger} from '../services/hamburger'; 
    export class App {
       bunType: string;
       constructor(@Inject(Hamburger) h) {
         this.bunType = h.bun.type;
       }
     }
</code></pre>

<p>And..</p>

<pre><code>  import {Injectable} from '@angular/core';
    import {Bun} from './bun';
    @Injectable()
    export class Hamburger {
      constructor(public bun: Bun) {
      }
    }
</code></pre>
