Babel:ES6 中的函数参数类型

IT技术 javascript reactjs ecmascript-6 babeljs
2021-05-05 21:43:39

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

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

: string并且: number刚刚从转译的 ES5 代码中删除。

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

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

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

1个回答

感谢Joe ClayBergiFelix Kling在评论部分提供的答案。我从讨论中总结了以下答案,因为没有人正式回答。

——

似乎一些Babel插件(例如babel-plugin-transform-flow-strip-types)在转换时剥离参数类型。我正在使用包含babel-plugin-transform-flow-strip-types 的babel-preset-react

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

在:

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

出去:

function foo(one, two, three) {}

结论,参数类型不是有效的 ES6,但如果使用带有剥离插件的 Babel 转译代码,则可以使用它们。