我正在尝试使用 TypeScript 将使用字符串类型的代码库的一部分转换为枚举类类型。问题是在某些地方字符串值略有不同。除了创建两个几乎相同的枚举类类型之外,有没有办法创建一个多个值与同一键匹配的单一类型?
我的尝试看起来像这样(不起作用):
const STATUS = {
CREATED: "CREATED",
PICKED_UP: "PICKED UP" | "PICKED_UP",
DELIVERED: "DELIVERED" | "DEL"
} as const
type ObjectValues<T> = T[keyof T];
type Status = ObjectValues<typeof STATUS>;
我正在寻找可以做到这一点的解决方案:
console.log(STATUS.PICKED_UP === "PICKED UP" && STATUS.PICKED_UP === "PICKED_UP") //should be true
doThingWithStatus("PICKED_UP") //should be ok, assuming function expects a type Status input
谢谢大家!