enum Direction {
Down = -1,
Up = 1
}
let i = 1;
for (const direction of Object.values(Direction)) {
console.log('iteration ' + i++);
console.log(direction);
}
iteration 1
Up
iteration 2
-1
iteration 3
Down
iteration 4
1
I was expecting:
iteration 1
-1
iteration 2
1
Generated js:
var Direction;
(function (Direction) {
Direction[Direction["Down"] = -1] = "Down";
Direction[Direction["Up"] = 1] = "Up";
})(Direction || (Direction = {}));
var i = 1;
for (var _i = 0, _a = Object.values(Direction); _i < _a.length; _i++) {
var direction = _a[_i];
console.log('iteration ' + i++);
console.log(direction);
}
I'm sure there's a workaround but I really just want to know what causes this to go against every single expectation I had