Как мне корректно создать объект запроса для выбора? В зависимости от типа нужно упаковать объекты либо TypeA, либо TypeB, либо TypeC, либо TypeD. Как это лучше сделать?
В своей практике для такой задачи я обычно использую фабричный метод. Создаем объект с методами для каждого типа, которые возвращают нужную структуру:
const specificSettingFactory = {
TypeA: (value) => ({ A: { fieldTypeA: value } }),
TypeB: (value) => ({ B: { fieldTypeB: value } }),
// и так далее для C и D
};
function createRequest(field, type, value) {
return {
field,
specificSetting: specificSettingFactory[type](value)
};
}
Это позволяет легко добавлять новые типы и упрощает тестирование.