ES6 rest 参数不适用于 babel
ES6 rest parameter not working with babel
我正在以最简单的方式使用 ES6 剩余参数:
function func(a, ...b) {
for (var i = 0; i < b.length; i += 2) {
console.log(b[i], b[i + 1]);
}
}
我已经安装了 babel-preset-es2015
,我的 .babelrc
文件只有:
{
"presets": ["es2015"]
}
奇怪的是,结果输出是:
"use strict";
function func(a) {
for (var i = 0; i < arguments.length; i += 2) {
console.log(arguments[i], arguments[i + 1]);
}
}
我在 https://phabricator.babeljs.io/T7000 提交了一个错误,但我非常担心,因为这是我第二次错误地使用 Babel 6 进行基本的 ES6 转译。我的设置是否损坏? Babel 6 是否在某处记录为 unstable/alpha?或者这个非常受欢迎的模块真的有那么糟糕吗?是否有任何替代的 ES6 转译器是用编译器级的严谨性和全面的测试套件编写的,可以安全使用?
您要查找的转换是http://babeljs.io/docs/plugins/transform-object-rest-spread/,它不是babel-preset-es2015
的一部分,而是babel-preset-stage-2
的一部分,或者您可以自行安装。
这是我的发现。
预设是转换插件的集合,所有版本都使用 ^
。似乎随着这些转换版本的变化,新版本的预设没有发布。对于已知可以协同工作的精选插件集来说,这不是一个好的来源。因此,就我而言,尽管我拥有最新的 babel-preset-es2015
,并且不存在新版本,但这并不意味着我也拥有所有最新的插件。
强制更新版本的组成插件解决了我的问题。预设版本显然没有告诉您任何有用的信息。如果您对插件本身没有直接依赖性,强制更新的唯一方法是强制重新安装预设。
我遇到了和 Jacob 一样的 ES6 剩余参数问题。我听从了 yaycmyk 的建议并做了 npm install babel-preset-stage-2
,然后将我的 gulp 文件从
pipe(babel({ presets: ['es2015'] }))
到
pipe(babel({ presets: ['es2015', 'stage-2'] }))
一路走好。
我正在以最简单的方式使用 ES6 剩余参数:
function func(a, ...b) {
for (var i = 0; i < b.length; i += 2) {
console.log(b[i], b[i + 1]);
}
}
我已经安装了 babel-preset-es2015
,我的 .babelrc
文件只有:
{
"presets": ["es2015"]
}
奇怪的是,结果输出是:
"use strict";
function func(a) {
for (var i = 0; i < arguments.length; i += 2) {
console.log(arguments[i], arguments[i + 1]);
}
}
我在 https://phabricator.babeljs.io/T7000 提交了一个错误,但我非常担心,因为这是我第二次错误地使用 Babel 6 进行基本的 ES6 转译。我的设置是否损坏? Babel 6 是否在某处记录为 unstable/alpha?或者这个非常受欢迎的模块真的有那么糟糕吗?是否有任何替代的 ES6 转译器是用编译器级的严谨性和全面的测试套件编写的,可以安全使用?
您要查找的转换是http://babeljs.io/docs/plugins/transform-object-rest-spread/,它不是babel-preset-es2015
的一部分,而是babel-preset-stage-2
的一部分,或者您可以自行安装。
这是我的发现。
预设是转换插件的集合,所有版本都使用 ^
。似乎随着这些转换版本的变化,新版本的预设没有发布。对于已知可以协同工作的精选插件集来说,这不是一个好的来源。因此,就我而言,尽管我拥有最新的 babel-preset-es2015
,并且不存在新版本,但这并不意味着我也拥有所有最新的插件。
强制更新版本的组成插件解决了我的问题。预设版本显然没有告诉您任何有用的信息。如果您对插件本身没有直接依赖性,强制更新的唯一方法是强制重新安装预设。
我遇到了和 Jacob 一样的 ES6 剩余参数问题。我听从了 yaycmyk 的建议并做了 npm install babel-preset-stage-2
,然后将我的 gulp 文件从
pipe(babel({ presets: ['es2015'] }))
到
pipe(babel({ presets: ['es2015', 'stage-2'] }))
一路走好。