如果我编写以下代码并通过 Babel (6.5.0) 转译它,它会正常工作。
function foo (first: string, second: number) {
// code here
}
: string
和 : number
只是从转译的 ES5 代码中删除。
如果我使用错误的参数类型调用该函数,它不会导致任何错误/警告。即使没有任何功能,它们也能提供信息。
我无法在互联网上找到有关 ES6 参数类型的正确信息。参数类型甚至是 ES6 的一部分吗?
编辑: 这个问题在下面的评论中得到了回答,我根据他们总结了官方答案。
最佳答案
感谢 Joe Clay , Bergi和 Felix 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/