我在将最新的 TypeScript 1.5 编译器与Map
和结合使用时遇到问题for..of
。例子:
var map: Map<string, string> = new Map<string, string>();
map.set("A", "one");
map.set("B", "two");
map.set("C", "three");
for(let [key, value] of map) {
console.log(key, value);
}
据此, TypeScript 1.5 支持解构和 for..of 所以我真的不明白为什么这不应该工作,但它输出无效的 ES5:
for (var _i = 0, _a = map; _i < _a.length; _i++) {
// ^^^^^^^^^
// A Map doesn't have a length, so this block never executes
var _b = _a[_i], key = _b[0], value = _b[1];
console.log(key, value);
}
我通过使用解决了这个问题,map.forEach((value, key) => { ... });
但它不如for..of
.
这是 1.5 版本的限制吗?当它不受支持时,我是否希望它转换Map
为 ES5?