Babel:ES6 中的函数参数类型

Babel: Function parameter types in ES6

本文关键字:函数 参数 类型 ES6 Babel      更新时间:2023-09-26

如果我编写以下代码并通过 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 类型的示例行为 http://babeljs.io/docs/plugins/transform-flow-strip-types/

在:

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

外:

function foo(one, two, three) {}

结论,参数类型不是有效的 ES6,但如果代码是使用 Babel 和剥离插件进行转译的。