Класс HttpParams является неизменным, поэтому любая операция добавления или добавления возвращает новый объект. Следовательно, ваша переменная params НЕ может быть const , измените ее на let .
Затем просто устанавливайте свои параметры на возвращаемое значение каждый раз, когда вам нужно манипулировать им:
let params = new HttpParams({
fromObject : {
requiredParam: 'requiredParam'
}
});
if (addOptionalParam)
params = params.append('optionalParamKey', 'optionalParamValue');
Что касается вашего второго вопроса, используйте вместо этого set или append, например:
const constParamKey = 'myKey';
params = params.append(constParamKey , 'Value');