我的类型包含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开始抱怨项目永远不会是类型。
答案 0 :(得分:0)
您应该将所有枚举组合到一个对象中
const MENU: IMenu = {
... FoodItem,
... DrinkItem
};
此对象的键入将是下一个
interface IMenu {
[key: string]: Item;
}
在该函数中,您将轻松调用所需的值:
Menu[item]