【发布时间】:2021-10-06 14:32:20
【问题描述】:
我正在构建一个附加了多个方法的请求。我想通过迭代枚举并构建请求来简化代码,但是当我尝试这样做时,我得到的结果与预期不同。
before 代码如下所示:
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;
};
我正在尝试像这样迭代:
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 requestCounts
我的 ENUM_OBJECT 如下所示:
export const ENUM_OBJECT: Partial<
Record<StatusType, MyFilterTypes>
> = {
[StatusType.Adopted]: setAnimalFilter1(),
[StatusType.Lost]: setAnimalFilter2(),
[StatusType.Appointment]: setAnimalFilter3(),
[StatusType.Processing]: setAnimalFilter4(),
};
第一个返回一个实际的请求,第二个返回一个 Map。我不确定 ForEach 如何在迭代后返回请求。任何线索我在这里做错了什么?
【问题讨论】:
标签: javascript typescript foreach enums request