可以使用类型查询和类型守卫来解决这个问题。例如,在遍历枚举类型时,我们可以使用Object.keys()来获取键的数组,并使用类型保护来检查每个键是否是有效的枚举键。示例代码如下:
enum Color {
Red = 'red',
Green = 'green',
Blue = 'blue'
}
function isColor(key: string): key is Color {
return Object.values(Color).includes(key as Color);
}
Object.keys(Color).forEach((key) => {
if (isColor(key)) {
const colorValue = Color[key];
console.log(colorValue);
}
});
在这个例子中,我们定义了一个isColor函数来检查每个键是否是有效的枚举键。我们使用了类型守卫,key is Color,来确保colorValue是一个有效的枚举值。这种方法可以避免类型问题,并使代码更加类型安全。
下一篇:遍历枚举时为空