2016-03-10 76 views
9
功能參數類型

如果我寫下面一段代碼和通過巴貝爾(6.5.0) transpile它能夠正常工作。巴別:在ES6

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

: string: number只是從transpiled ES5代碼中刪除。

如果我使用錯誤的參數類型調用的函數,它不會導致任何錯誤/警告。即使沒有任何功能,它們也是信息豐富的。

我無法找到互聯網上ES6的參數輸入正確的信息。參數輸入甚至是ES6的一部分?

編輯: 這個問題在下面的評論得到了回答,我根據他們的正式答案包裝。

+0

沒有,有在ES6 – rnevius

+0

沒有任何類型提示,他們是不會ES6。他們很可能是Typescript或Flow註釋。檢查你的譯員設置。 – Bergi

+0

爲什麼Babel譯員在定義它們時不會導致錯誤? – CuriousSuperhero

回答

7

感謝您對Joe Clay,0 BergiFelix Kling的評論部分中的答案。我將下面的答案從討論中打包出來,因爲沒有人正式回答。

-

似乎一些巴貝爾插件(例如babel-plugin-transform-flow-strip-types)的帶狀的參數類型關閉,而transpiling。我正在使用babel-preset-react,其中包括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轉換,則可以使用它們。

相關問題