TS编译成JS后,Map转换错误,tsconfig.json中设置的是es6

  • Creator 版本:1.9.1

  • 目标平台:web

  • 详细报错信息,包含调用堆栈:

  • 重现方式:必现

   TS源码

let map: Map<number,string> = new Map<number,string>(); map.set(0,"a"); map.set(1,"b"); for(let item of map) { console.log(item); }
转为js后
var map = new Map(); map.set(0, "a"); map.set(1, "b"); for (var _i = 0, map_1 = map; _i < map_1.length; _i++) { var item = map_1[_i]; console.log(item); }
Cocos creator TS中Map转化出来的js为什么是数组的遍历形式?我们在tsconfig.json里设置了ES6

jsconfig.json:

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "experimentalDecorators": true
    },
    "exclude": [
        "node_modules",
        ".vscode",
        "library",
        "local",
        "settings",
        "temp"
    ]
}

tsconfig.json:

{
  "compilerOptions": {
    "module": "commonjs",
    "lib": [ "dom", "es6", "es2015.promise" ],
    "target": "es6",
    "experimentalDecorators": true,
    "skipLibCheck": true
  },
  "exclude": [
    "node_modules",
    "library",
    "local",
    "temp",
    "build",
    "settings"
  ]
}
1赞

对,是这样设置的。
搜到了一个帖子,说是没完全支持es6
http://docs.cocos.com/creator/manual/zh/scripting/reference/javascript-support.html