2016-03-10 24 views
9

Wenn ich das folgende Stück Code schreibe und es durch Babel (6.5.0) es funktioniert ordnungsgemäß.Babel: Funktionsparameter Typen in ES6

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

: string und : number sind gerade aus dem transpiled ES5 Code entfernt.

Wenn ich die Funktion mit falschen Parametertypen aufrufen, es in jedem Fehler/Warnung führt nicht. Sie sind informativ, obwohl sie keine Funktionalität haben.

Ich kann nicht die richtigen Informationen über ES6 Parameter Typisierung im Internet finden. Ist die Parametereingabe sogar ein Teil von ES6?

EDIT: Diese Frage wurde in den Kommentaren beantwortet und ich wickelte die offizielle Antwort basierend auf ihnen.

+0

Nein, in ES6 gibt es keinen Typhinweis – rnevius

+0

Nein, sie sind nicht ES6. Sie sind wahrscheinlich Typoskript- oder Fließkomma-Anmerkungen. Überprüfen Sie Ihre Transpilereinstellungen. – Bergi

+0

Warum Babel transpiler führt nicht zu einem Fehler, wenn sie definiert sind? – CuriousSuperhero

Antwort

7

Danke für Joe Clay, Bergi und Felix Kling für die Antworten im Abschnitt Kommentare. Ich wickelte die Antwort unten aus der Diskussion ab, da niemand offiziell antwortete.

-

es, dass einige Babel Plugins scheint (zB babel-plugin-transform-flow-strip-types.) Streifen Parametertypen aus, während transpiling. Ich verwende babel-preset-react, die babel-plugin-transform-flow-strip-types enthält.

Beispiel Verhalten von babel-Plugin-Transformations-Flow-Streifen-Typen copy-klebte unten aus http://babeljs.io/docs/plugins/transform-flow-strip-types/

In:

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

Out:

function foo(one, two, three) {} 

Fazit, Parametertypen sind nicht gültig ES6, aber sie können verwendet werden, wenn Code mit Babel mit den Stripping-Plugins transpiliert wird.

Verwandte Themen