使用Object.values对象值至于for循环,则将其视为在对象上迭代
enum Colors {
Red = "Red",
Green = "Green",
Yellow = "Yellow"
}
function doStuff(mycolor: Colors): void {
console.log(mycolor);
}
Object.values(Colors).forEach(color => doStuff(color));
我猜颜色只是值而不是枚举项,因为您也可以使用它:
Object.entries(Colors).forEach((color: [string, Colors]) => doStuff(color[1]));
还要记住
一般来说,对于那些没有
if
switch
声明。有趣的是,如果您确实向for循环添加了更深入的逻辑,那么TypeScript将确定类型:
for (const color in Colors) {
if (color === Colors.Green) {
// Now the cat is either dead or alive
doStuff(color);
}
}
Object.entries项目仍然是新的,所以请确保
tsconfig.json
正在引用
es2017
compilerOptions/lib
.