title: Get 'Can't resolve all parameters' when I provide the Interceptor
body: <p>I am trying to implement HttpInterceptor.
  When I add it to @NgModule, I get the following error in Chrome:</p>
  
  <pre><code>Uncaught Error: Can't resolve all parameters for JwtInterceptor: (?, ?).
      at syntaxError (compiler.js:466)
      at CompileMetadataResolver._getDependenciesMetadata (compiler.js:15547)
      at CompileMetadataResolver._getTypeMetadata (compiler.js:15382)
  </code></pre>
  
  <p>Spent much time on googling, don’t have an idea what to undertake…</p>
  
  <p>Here is how I provide the Interceptor in AppModule:</p>
  
  <pre><code>...
  providers: [
     {
        provide: HTTP_INTERCEPTORS,
        useClass: JwtInterceptor,
        multi: true
     }
  ],
  ...
  </code></pre>
  
  <p>Here is the Interceptor itself, nothing fancy:</p>
  
  <pre><code>export class JwtInterceptor implements HttpInterceptor {
     constructor(private inj: Injector, private logger: Logger) {
        this.logger.l(true)('Interceptor &gt;&gt;');
     }
  
     intercept(req: HttpRequest&lt;any&gt;, next: HttpHandler): Observable&lt;HttpEvent&lt;any&gt;&gt; {
        this.logger.l(true)('interceptor &gt;&gt;');
  
        const auth = this.inj.get(AuthService);
  
        // add token to the request:
        const authReq = req.clone({
           setHeaders: {
              Authorization: `Bearer ${auth.getToken()}`
           }
        });
  
        // return next.handle(authReq);
        return next.handle(authReq).do((event: HttpEvent&lt;any&gt;) =&gt; {
           if (event instanceof HttpResponse) {
              // todo: get refreshed token if it exists:
           }
        }, (err: any) =&gt; {
           if (err instanceof HttpErrorResponse) {
              if (err.status === 401) {
                 auth.collectFailedRequest(authReq);
                 // todo: redirect to the login route or show a modal
              }
           }
        });
     }
  }
  </code></pre>