2016-03-10 8 views
9

Aşağıdaki kod parçasını yazar ve Babel (6.5.0) aracılığıyla iletirim doğru çalışır.Babel: ES6 işlev parametresi türleri

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

: string ve : number sadece transpiled ES5 kodu kaldırılır.

Yanlış parametre türlerini kullanarak işlevi çağırırsam, herhangi bir hata/uyarı ile sonuçlanmaz. Herhangi bir işlevsellik olmamasına rağmen bilgilendiricidirler.

ES6'nın internette parametre yazması hakkında uygun bilgileri bulamıyorum. Parametre ES6'nın bir kısmını bile yazıyor mu?

DÜZENLEME: Bu soru aşağıdaki yorumlarda yanıtlandı ve onlara dayalı resmi yanıtı sardım.

+0

Hayır, ES6'da – rnevius

+0

Hayır ipucu yok, bunlar ES6 değil. Bunlar büyük olasılıkla Typescript veya Flow ek açıklamalarıdır. Transpiler ayarlarınızı kontrol edin. – Bergi

+0

Neden Babel transpiler tanımlanmışsa hatayla sonuçlanmıyor? – CuriousSuperhero

cevap

7

Yorumlar bölümündeki yanıtlar için Joe Clay, Bergi ve Felix Kling için teşekkürler. Kimsenin resmen cevap vermediği için, aşağıdaki cevabı tartışmadan sildim.

-

görünüyor

o ise transpiling kapalı bazı Babel eklentileri (örn babel-plugin-transform-flow-strip-types.) Şerit parametre türleri. babel-plugin-transform-flow-strip-types'u içeren babel-preset-react kullanıyorum. babel-eklentisi-dönüşümü akış-şerit türleri

Örnek davranışı kopya yapıştırılmış olarak http://babeljs.io/docs/plugins/transform-flow-strip-types/

aşağıda:

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

Out:

function foo(one, two, three) {} 

Sonuç, parametre türleri geçerli ES6 değildir, ancak kodu, Babel kullanarak sıyırma eklentileriyle aktarılırsa kullanılabilirler.