Babel: Function parameter types in ES6

旧时模样 提交于 2019-12-21 03:53:09

问题


If I write the following piece of code and transpile it through Babel (6.5.0) it works correctly.

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

: string and : number are just removed from the transpiled ES5 code.

If I call the function using wrong parameter types, it does not result in any error/warning. They are informative even though do not have any functionality.

I cannot find proper information about ES6's parameter typing on internet. Is parameter typing even part of ES6?

EDIT: This question got answered in the comments below and I wrapped the official answer based on them.


回答1:


Thanks for Joe Clay, Bergi and Felix Kling for the answers in the comments section. I wrapped the answer below from the discussion as no-one answered officially.

--

It seems that some Babel plugins (eg. babel-plugin-transform-flow-strip-types) strip parameter types off while transpiling. I'm using babel-preset-react that includes babel-plugin-transform-flow-strip-types.

Example behaviour of babel-plugin-transform-flow-strip-types copy-pasted below from http://babeljs.io/docs/plugins/transform-flow-strip-types/

In:

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

Out:

function foo(one, two, three) {}

Conclusion, parameter types are not valid ES6, but them can be used if code is transpiled using Babel with the stripping plugins.



来源:https://stackoverflow.com/questions/35916921/babel-function-parameter-types-in-es6

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!