【发布时间】:2026-01-25 05:00:02
【问题描述】:
我正在将一些代码从 Coffescript 迁移到 ES2015。我希望转译的结果如下所示:
Meteor.users.deny({
update: function() {
return true;
}
});
在 Coffescript 中,这样做:
Meteor.users.deny
update: ->
true
是否可以在 ES2015 中对此进行编码,以便输出与原始代码匹配?
附录:
这是我在 babel 上尝试的,勾选了 Evaluate
Meteor.users.deny({
update: function () {
return true;
}
});
和
Meteor.users.deny({
update: () => true
});
两者都输出:
Meteor.users.deny({
update: function update() {
return true;
}
});
匿名函数被命名(更新)
那么为什么这是一个“问题”?我正在尝试理解 ES2105,而我在 Coffeescript 中可以轻松完成的事情在 ES2015 中似乎是不可能的。我试图确认 - 或者看看我是否在滥用 ES2015 或缺少它的功能
This question is similar 但确实解决了我想要做的事情。任何指导将不胜感激
【问题讨论】:
-
您尝试了哪些 ES6 代码但不起作用?请向我们展示你的尝试(以及你的 babel 标志)。
-
您的第一个 sn-p 已经是有效的 ES6 代码,可以准确地转换为该代码。它有什么问题?
-
你无法避免函数在 ES6 中被命名。如果您在 ES6 引擎中评估这样的方法定义,它将产生一个命名函数,这就是 Babel 试图重现的内容。看看2ality.com/2015/09/function-names-es6.html
-
感谢@Bergi,这正是我正在寻找的信息
标签: meteor ecmascript-6 babeljs