javascript - 巴别塔 : Function parameter types in ES6

标签 javascript reactjs ecmascript-6 babeljs

如果我编写以下代码并通过 Babel (6.5.0) 转译它,它会正常工作。

function foo (first: string, second: number) {
    // code here
}

: string: number 只是从转译的 ES5 代码中删除。

如果我使用错误的参数类型调用该函数,它不会导致任何错误/警告。即使没有任何功能,它们也能提供信息。

我无法在互联网上找到有关 ES6 参数类型的正确信息。参数类型甚至是 ES6 的一部分吗?

编辑: 这个问题在下面的评论中得到了回答,我根据他们总结了官方答案。

最佳答案

感谢 Joe Clay , BergiFelix Kling评论区的答案。由于没有人正式回答,我在下面总结了讨论的答案。

--

似乎一些 Babel 插件(例如 babel-plugin-transform-flow-strip-types )在转译时去除了参数类型。我正在使用 babel-preset-react其中包括 babel-plugin-transform-flow-strip-types .

babel-plugin-transform-flow-strip-types 的示例行为从 http://babeljs.io/docs/plugins/transform-flow-strip-types/ 下面复制粘贴

在:

function foo(one: any, two: number, three?): string {}

输出:

function foo(one, two, three) {}

结论,参数类型在 ES6 中无效,但可以使用 代码使用带有剥离插件的 Babel 进行转译。

关于javascript - 巴别塔 : Function parameter types in ES6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35916921/

相关文章:

javascript - 添加用javascript中的pdf文件打开的空白窗口

javascript - 使用 jQuery 删除选择列表的选项返回此错误 "unable to get property length of undefined or null reference"

javascript - 如何正确安装reactjs npm包

javascript - e.target.classList 在 react typescript 中的 onClick 事件中不存在

javascript - 根据值处理 JSON 对象/数组

javascript - 带解构的可选参数对象

javascript - 使用 Ramda 删除数组中的多个对象

javascript - Google PageSpeed 消除首屏内容中的呈现阻塞 CSS Wordpress

reactjs - 使用拦截器时无法使用 axios 发送表单数据

javascript - axios 从同一输入 vue 3 获取字符串和补丁作为对象