typescript - 在不知道具体枚举类型的情况下,按键获取枚举的值
问题描述
我有一个由 3 个枚举组成的类型。
enum TextItem {
BOOK = "inventory.book",
PAGE = "inventory.page"
}
enum FoodItem {
BURGER = "food.burger",
LETTUCE = "food.lettuce",
}
enum DrinkItem {
WATER = "drinks.water",
COLA = "drinks.cola",
}
type Item = TextItem | FoodItem | DrinkItem;
const getEnumValue(item: Item) {
// What to do here?
}
Item
函数中传递了一个枚举类型getEnumValue
。是哪个项目,我不知道。但可以肯定它是类型Item
(例如DrinkItem.WATER
)。
在函数中传递项目时getEnumValue
,如何确定关联的字符串值?
我在想而不是我要说的项目keyof Item
。但是随后 Typescript 开始抱怨 item 的类型从不。
解决方案
您应该将所有枚举组合成一个对象:
const MENU: IMenu = {
... FoodItem,
... DrinkItem
};
接下来为这个对象输入
interface IMenu {
[key: string]: Item;
}
在函数中,您将轻松调用所需的值:
Menu[item]
推荐阅读
- c# - 用于空格的 C# 字符串存储
- javascript - 如何使用javascript获取打印机列表并将文档打印到选定的打印机
- html - 如何修复html中固定列的无限垂直滚动问题
- java - 当我尝试从 Web 服务测试方法时,为什么没有收到结果?
- go - append 的第一个参数必须是 slice(struct 和 golang)
- ios - 用户在“应用内购买”中购买产品时如何发送额外参数(如:帐户用户详细信息)
- html - 通过 VBA Excel 更改站点中的数据
- java - How to access a column from a sub query in outer query using Spark SQL
- javascript - Javascript 从 php 列表中给了我错误的图像名称
- java - JavaFX:如何使用事件处理程序处理 textField 上的文本选择?