У меня проблема с HttpParams

Здрасте. Проблема в том что в params переменной не хватает ключей.

консоль в коде должна вывести но выводит только филтер: { filter: 827364dsffjgdsf768, key: 'userId }

findTests = () => {
    this.userId = this.test.userId;
    this.testService.getTestsByParams(this.userId, 'userId').subscribe(
      (req) => {
        this.tests = req;
        this.testsLoader = false;
      },
      (error) => {
        this.testsLoader = false;
        this.toastr.error('Не удалось загрузить тесты');
      }
    );
  };

  getTestsByParams = (filter: string, key?: string, limit?: number): Observable<Test[]> => {
    let params = new HttpParams()
      .set('filter', filter);
    if (limit) {
      params.set('limit', limit);
    }
    if (key?.length) {
      params.set('key', key);
    }

    console.log(params); // {filter: level} а должен объект состоять из 2 ключей

    return this.http.get<Test[]>(`/api/tests/`, { params });
  }

Ответы (1 шт):

Автор решения: Alexander Chernin
let params = new HttpParams()
    .set('filter', filter)
    .set('limit', limit)
    .set('key', key);

Или

let params = new HttpParams()
    .set('filter', filter);

if (limit) {
   params = params.set('limit', limit);
}

if (key?.length) {
    params = params.set('key', key);
}
→ Ссылка