首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Babel无法用扩展运算符编译ES6对象克隆

Babel无法用扩展运算符编译ES6对象克隆
EN

Stack Overflow用户
提问于 2017-12-05 20:45:39
回答 2查看 2.6K关注 0票数 4

我使用grunt-babel来编译我的ES6代码。但是,当我尝试使用Warning: dist/app.js: Unexpected token (321:9) Use --force to continue.复制和扩展对象时,它会返回{...obj}。下面的代码在Chrome v61的控制台上运行得很好,但是Babel并不喜欢它。有什么问题吗?

代码语言:javascript
复制
let a = { a: 12 };
let b = { ...a, b: 15 };

我正在使用环境预置。(babel-core v.6.26.0和babel-预设-env诉1.6.1)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-05 20:48:09

对象的扩散属性不是ES6的一部分。目前,截至2017年12月,这是ECMAScript第三阶段提案的一部分。你可以看一下这里的建议

您需要一个babel预置,其中包括尚未正式在语言中的功能。babel-preset-env不包括这些特性。

为了解决您的问题,您可以使用类似巴贝尔-预置-舞台-3的内容,并将"stage-3“添加到.babelrc中的预置列表中。

附带说明:

ES6中对象的扩展语法的一个替代方法是使用Object.assign

代码语言:javascript
复制
let b = Object.assign({}, a, { b: 15 });
票数 8
EN

Stack Overflow用户

发布于 2017-12-05 21:00:54

您可能希望将这些插件添加到您的.babelrc中。这个Github问题有很多解决方案意外令牌(rest扩展操作符)。我现在正在试用这些。

代码语言:javascript
复制
{
  "presets": ["react", "es2015"],
  "plugins": ["transform-es2015-destructuring", "transform-object-rest-spread"]
}

npm install --save-dev babel-plugin-transform-es2015-destructuring

npm install --save-dev babel-plugin-transform-object-rest-spread

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47662390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档