2016-03-10 32 views
9

में फ़ंक्शन पैरामीटर प्रकार यदि मैं कोड का निम्न भाग लिखता हूं और इसे बैबेल (6.5.0) के माध्यम से पारदर्शी करता है तो यह सही तरीके से काम करता है।बेबेल: ES6

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

: string और : number सिर्फ transpiled ES5 कोड से हटा दिया जाता है।

यदि मैं गलत पैरामीटर प्रकारों का उपयोग करके फ़ंक्शन को कॉल करता हूं, तो इसका कोई त्रुटि/चेतावनी नहीं होती है। वे जानकारीपूर्ण हैं भले ही कोई कार्यक्षमता न हो।

मुझे इंटरनेट पर ES6 के पैरामीटर टाइपिंग के बारे में उचित जानकारी नहीं मिल रही है। पैरामीटर टाइपिंग ES6 का हिस्सा भी है?

संपादित करें: इस प्रश्न का उत्तर नीचे दी गई टिप्पणियों में दिया गया और मैंने उनके आधार पर आधिकारिक उत्तर लपेट लिया।

+0

नहीं, ES6 – rnevius

+0

में कोई संकेत नहीं है, नहीं, वे ES6 नहीं हैं। वे अधिकतर टाइपस्क्रिप्ट या फ्लो एनोटेशन हैं। अपनी पारदर्शी सेटिंग्स की जांच करें। – Bergi

+0

क्यों लेबल परिभाषित किया गया है जब लेबल लेबलर त्रुटि का परिणाम नहीं है? – CuriousSuperhero

उत्तर

7

टिप्पणियां अनुभाग में उत्तरों के लिए Joe Clay, Bergi और Felix 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 मान्य नहीं हैं, लेकिन कोड को अलग-अलग प्लगइन के साथ बेबेल का उपयोग करके पारदर्शी किया गया है, तो उनका उपयोग किया जा सकता है।