这是打字稿代码,我想通过按值查看在Event对象中设置枚举。
I have this enum -
export enum EVENT_TYPE_ENUM {
EVENT_TYPE_ONE = "evt.1",
EVENT_TYPE_TWO = "evt.2",
}
I have this object -
export class Event{
private eventType: EVENT_TYPE_ENUM;
public getEventType(): EVENT_TYPE_ENUM {
return this.eventType;
}
public setEventType(eventType: EVENT_TYPE_ENUM): void {
this.eventType = eventType;
}
}
我想通过按值搜索EVENT_TYPE_ENUM来在Event对象上设置eventType。例如,我现在收到的值为“ evt.1”,我想搜索EVENT_TYPE_ENUM并设置eventType,setter方法仅接受类型为EVENT_TYPE_ENUM。
const event = new Event();
event.setEventType(); //set value here by searching EVENT_TYPE_ENUM by value
of evt.1
答案 0 :(得分:0)
您可以使用Object.keys列出枚举的每个条目:
Object.keys(MyEnum).forEach(key => {
console.log(`EVENT_TYPE_ENUM.${key} = ${MyEnum[key as keyof typeof MyEnum]}`);
})
答案 1 :(得分:0)
正如您所声明的那样,由于Typescript具有适当的数据表示形式,因此可以在next之前创建足够的数据:
EVENT_TYPE_ENUM["evt.1"] // EVENT_TYPE_ONE
您的情况应该是这样:
const event = new Event()
event.setEventType(EVENT_TYPE_ENUM["evt.1"])