说有一个
enum ArrowKey{
Up = "ArrowUp",
Right = "ArrowRight",
Down = "ArrowDown",
Left = "ArrowLeft"
}
现在,当接收带有
KeyboardEvent
"ArrowUp"的 e.key
时,如何轻松检查枚举中是否存在此字符串值?之后如何选择正确的枚举值? 最佳答案
以下函数将返回与按下的箭头键对应的枚举值,如果该键未在该枚举中定义,则返回 null。
getEnumValue(event): ArrowKey | null {
const pressedKey = event.key;
const keyEnum = Object.keys(ArrowKey).find(key => ArrowKey[key] === pressedKey);
return ArrowKey[keyEnum] || null;
}
演示:https://stackblitz.com/edit/angular-dmqwyf?embed=1&file=app/app.component.html
编辑 :一行等效(ES 2017)
getEnumValue(event): ArrowKey | null {
return Object.values(ArrowKey).includes(event.key) ? event.key : null;
}
关于typescript - 检查枚举 TypeScript 中的字符串值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49072376/