title: Set params in httpInterceptor is overriding extra params I want to append
body: <p>Current Behaviour:
  I have created an HttpInterceptor that sets an id and token to all requests if the users credentials are available to get. When I try to set an extra HttpParam in a request it gets overwritten by the interceptor.</p>
  <p>Expected Behaviour:
  Would like to be able to set extra parameters if needed and have the interceptor append the default id and token.</p>
  <p>I get why the behaviour is so but is there a workaround to have the interceptor set the http params and append any extra request params?</p>
  <pre><code>import {
    HttpEvent,
    HttpInterceptor,
    HttpHandler,
    HttpRequest,
    HttpParams,
  } from '@angular/common/http';
  import { AuthService } from './auth.service';
  import { exhaustMap, take } from 'rxjs/operators';
  
  @Injectable()
  export class AuthInterceptorService implements HttpInterceptor {
    constructor(private authService: AuthService) {}
    intercept(req: HttpRequest&lt;any&gt;, next: HttpHandler) {
      return this.authService.user.pipe(
        take(1),
        exhaustMap((user) =&gt; {
          // For requests that do not need authentication, it will proceed without attaching params. E.g Login.
          if (!user) {
            return next.handle(req);
          }
          const modifiedReq = req.clone({
            params: new HttpParams()
              .set('id', user.id)
              .set('token', user.token),
          });
          return next.handle(modifiedReq);
        })
      );
    }
  }
  </code></pre>
  <pre><code>  fetchCompaniesByUserId() {
      return this.http
        .get&lt;any&gt;(
          `${environment.apiUrl}/GetCompaniesByUserId`,
          {
            params: new HttpParams().set('timestamp', Date.now().toString()),
          }
        ).subscribe()
    }
  </code></pre>