title: Angular 6: provide HTTP_INTERCEPTORS for 'root'
body: <p>With the change from Angular 5 where you provide service in AppModule to Angular 6 where you set 'provideIn' key in @Injectable decorator I have changed all services to use new "provideIn" method. However, exception is my Interceptor Service.</p>
  
  <p>How can I provide HTTP_INTERCEPTORS token for 'root' and use InterceptorService?</p>
  
  <p>this is the Angular 5 way I use atm:</p>
  
  <pre><code>@Injectable()
  export class InterceptorService implements HttpInterceptor {
  ...
  }
  </code></pre>
  
  <p>in AppModule:</p>
  
  <pre><code>providers: [{
    provide: HTTP_INTERCEPTORS,
    useClass: InterceptorService,
    multi: true
  }]
  </code></pre>
  
  <p>But what would be Angular 6 way?</p>
  
  <p>I've tried something like</p>
  
  <pre><code>@Injectable({
    provideIn: 'root',
    useValue: HTTP_INTERCEPTORS,
    deps: [forwardRef(() =&gt; InterceptorService)]
  })
  export class InterceptorService implements HttpInterceptor {
  ...
  }
  </code></pre>
  
  <p>and a lot of other variants with Injectable but can't seem to figure out how to make it work without writing an object literal directly into providers of a module.</p>