Estoy creando una solicitud que tiene varios métodos adjuntos. Me gustaría simplificar el código iterando sobre una enumeración y creando la solicitud, pero cuando intento esto, termino con un resultado diferente al esperado.
El código anterior se ve así:
export const makeShelterRequest = (area: string) => { const request = new Request().setArea(area); request .getDogs() .set( StatusType.Adopted, setAnimalFilter1(), ) .set( StatusType.Lost, setAnimalFilter2(), ) .set( StatusType.Appointment, setAnimalFilter3(), ) .set( StatusType.Processing, setAnimalFilter4(), )); return request; };Estoy intentando iterar en su lugar así:
const request = new Request().setArea(area); const requestCounts = request.getDogsCount() const ENUM_OBJECT_KEYS = Object.keys(ENUM_OBJECT) ENUM_OBJECT_KEYS.forEach((key) => { requestCounts.set( key, ENUM_OBJECT[key as StatusType])) }) return requestCountsDonde mi ENUM_OBJECT se ve así:
export const ENUM_OBJECT: Partial< Record<StatusType, MyFilterTypes> > = { [StatusType.Adopted]: setAnimalFilter1(), [StatusType.Lost]: setAnimalFilter2(), [StatusType.Appointment]: setAnimalFilter3(), [StatusType.Processing]: setAnimalFilter4(), };El primero devuelve una solicitud real, el segundo devuelve un mapa. No estoy seguro con ForEach de cómo devolver una solicitud después de la iteración. ¿Alguna pista de lo que estoy haciendo mal aquí?
Bueno, resulta que la solución era tonta:
En mi intento de iteración, return requestCounts . Cambiarlo a return request funcionó.