我想使用Symbol.iterator为枚举迭代它的值,如下所示:
enum Color {red, green, blue}
Color[Symbol.iterator] = function*():Iterator<Color> {
yield Color.red;
yield Color.green;
yield Color.blue;
}
for (let color of Color){
alert(color);
}
但这不起作用。什么会奏效?对我来说最重要的是不必更改for / of line。
我在for / of行上得到的错误:TS2488:Type必须有一个返回迭代器的'Symbol.iterator'方法。
答案 0 :(得分:3)
我能得到的最接近的是:
enum Color {red, green, blue}
module Color
{
export function* Values()
{
yield Color.red;
yield Color.green;
yield Color.blue;
}
}
for (let color of Color.Values())
{
alert(color);
}
虽然它稍微修改了你的for / of循环。希望它对你有任何帮助。