क्या ES6 / 7 में एरो फ़ंक्शंस को निर्यात करना संभव है?


95

नीचे दिया गया निर्यात विवरण वाक्यविन्यास त्रुटि देता है

export default const hello = () => console.log("say hello")

क्यों ?

मैं केवल नामित कार्यों को निर्यात करने में सक्षम हूं

export function hello() {
  console.log("hello")
}

क्या कारण है?


4
वास्तव में त्रुटि क्या कहती है?
एंडी

2
ठीक यहाँ काम करता है: astexplorer.net/#/0fv5UXttsP
फेलिक्स क्लिंग


1
वाक्यविन्यास त्रुटि क्या है?
सर्वजन्म

1
आप एक डिफ़ॉल्ट निर्यात का नाम नहीं दे सकते।
फेलिक्स क्लिंग

जवाबों:


154

क्या ES6 / 7 में एरो फ़ंक्शंस को निर्यात करना संभव है?

हाँ। exportउस मूल्य की परवाह नहीं करता है जिसे आप निर्यात करना चाहते हैं।

नीचे दिया गया निर्यात विवरण वाक्यविन्यास त्रुटि देता है ... क्यों?

आपके पास एक डिफ़ॉल्ट निर्यात नहीं हो सकता है और इसे एक नाम दे सकते हैं ("डिफ़ॉल्ट" पहले से ही निर्यात का नाम है)।

या तो करते हैं

export default () => console.log("say hello");

या

const hello = () => console.log("say hello");
export default hello;

4
नीचे काम कैसे होता है फिर डिफॉल्ट हेल्लो = () => {कंसोल.लॉग ("क्यों
डाउनवोट

3
x = yएक असाइनमेंट एक्सप्रेशन है जो मूल्य के अनुसार हल होता है y। यह एक चर घोषणा नहीं है। आप x = yकहीं भी रख सकते हैं आप एक अभिव्यक्ति डाल सकते हैं। नोट: यह xपहले से परिभाषित नहीं होने पर सख्त मोड में फेंक देगा ।
फेलिक्स क्लिंग

2
नियमित निर्यात के बारे में क्या? क्या ऐसा करना संभव है export () => {/*body*/} as getUsers;:? या मुझे पहले इसे परिभाषित करना है और फिर इसे निर्यात करना है?
टॉमाज़ मूलार्क

44
@ टॉमाज़:export const getUser = () => {...};
फेलिक्स क्लिंग

3
@ बरीच: इससे कोई फर्क नहीं पड़ता कि कोई फ़ंक्शन कैसे बनाया गया था जब तक कि इसका उपयोग उस तरीके से किया जा सकता है जैसा कि माना जाता है।
फेलिक्स क्लिंग

12

यदि आप डिफ़ॉल्ट निर्यात नहीं चाहते हैं, तो आप इस सिंटैक्स के साथ नामांकित फ़ंक्शन का निर्यात कर सकते हैं:

export const yourFunctionName = () => console.log("say hello");

तो आप के export function yourFunctionName () {साथ बदलें export const yourFunctionName = () => । वर्णों की लंबाई समान होती है, लेकिन इस खंड के भीतर एक टाइपो बनाने का एक उच्च मौका है = () =>। ईमानदारी से, मेरे लिए यह कम पठनीय और अधिक काम लगता है :)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.