Babel:ES6中的函数参数类型

时间:2016-03-10 12:46:26

标签: javascript reactjs ecmascript-6 babeljs

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

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

: string: number刚刚从已编译的ES5代码中删除。

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

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

修改 这个问题在下面的评论中得到了解答,我根据它们包装了官方答案。

1 个答案:

答案 0 :(得分:10)

感谢您Joe ClayBergiFelix 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和剥离插件来编译代码。