Array.prototype.includes - 未被Babel转换

3

我无法弄清如何将这段代码转换为Node.js v4环境兼容的代码:[].includes('anything')

因为在Node.js v4中,这会抛出错误:Error: includes不是一个函数...

有人能帮我理解为什么babel不会转换.includes()吗? 我已经尝试使用babel-preset-es2015和babel-preset-es2016以及babel repl:示例babel repl代码使用


因为它是可填充的。可填充的功能不会被转译。 - Estus Flask
你需要一个 polyfill 来包含 ES6 方法,例如 .includes(). - jfriend00
https://babeljs.io/docs/usage/polyfill/ - Felix Kling
1
我正在一个被webpack项目引用的库中使用这段代码。当我使用babel-polyfill并将该库包含在也使用babel-polyfill的webpack项目中时,我会收到一个错误,指出babel-polyfill只能被包含一次。有没有人可以推荐一个解决方案,让我的库可以使用一个polyfill,而不会与需要它的任何项目包/捆绑产生冲突? - Cory Robinson
1个回答

1

要使用静态方法,如Array.fromObject.assign,实例方法,如Array.prototype.includes,您需要导入babel-polyfill。

如果您不想修改全局变量,请查看transform-runtime插件。这意味着您将无法使用上述提到的实例方法,例如Array.prototype.includes


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接