我只是在浏览一些打字稿生成的代码,并对传播代码感到有些惊讶
test.ts
let task = { ...data };
test.js
let task = Object.assign({}, data);
我仔细检查了tsconfig.json
文件,并在compilerOptions
"target": "es2017",
我认为扩展运算符是有效的es6代码
因此,将目标更改为
"target": "ESNext",
我的test.js现在已经
了let task = { ...data };
我使用的是typescript 2.7.2
所以,基本上问题归结为为什么我需要EsNext而不是es2017 / es6?
答案 0 :(得分:2)
对象其余/点差属性与数组其余/点差属性不同,不包含在ES2017规范中。但它们包含在ES2018规范中。