反馈bug,cocos 打包 web 平台编译扩展运算符错误

  • Creator 版本: 3.8.3

  • 目标平台: Edge,Chrome

  • 重现方式:
    // 代码中写
    const a: number[] = [0,1,2]
    const b: number[] = […a]
    log(b[0]) // 0

// 编译为web后为
const a = [0,1,2]
const b = [].concat(a)
log(b[0]) // [0,1,2]

// 似乎对所有可迭代对象或者实现Symbole.iterator接口的都一样,如
const map = new Map<number,number>()
map.set(0 , 0)
const a = […map.values()] // [0]

// 编译后
const map = new Map()
map.set(0 , 0)
const a = [].concat(map.values()) // [ {可迭代对象} ]

这是我的编译配置

不知道是我的问题还是老bug了,好像原来就有

扩展运算符不是某个ES版本新引入的特性么,编译的选项里有个target,一般是往低了兼容,这就会导致过程中有些语法不支持,靠bible转译成支持的老旧的语法啊

项目设置-》脚本-》启用宽松模式,这个关闭掉试试。

陈年老 bug 了。默认开启了宽松模式,babel 转换 … 会有问题。