सवाल तीर फ़ंक्शन "अभिव्यक्ति अपेक्षित" वाक्यविन्यास त्रुटि


मैं इस कोड को बदलना चाहता हूं:

var formatQuoteAmount = function (tx) {
    return Currency.toSmallestSubunit(tx.usd, 'USD');
};
var quoteAmounts = res.transactions.map(formatQuoteAmount);

एक अज्ञात तीर समारोह में। मैंने यह लिखा है:

var quoteAmounts = res.transactions.map(tx => Currency.toSmallestSubunit(tx.usd, 'USD'));

मुझे मिला expression expected तीर पर वाक्यविन्यास त्रुटि। मैंने देखा यहां डिफ़ॉल्ट वाक्यविन्यास और ऐसा लगता है कि मेरे कोड का वाक्यविन्यास सही है। कोई विचार क्या समस्या हो सकती है?

मैंने यह वाक्यविन्यास के साथ काम किया है:

    var quoteAmounts = res.transactions.map(function (tx) {
        return Currency.toSmallestSubunit(tx.usd, 'USD')
    });

लेकिन मैं इसे एक तीर-फ़ंक्शन के साथ एक लाइनर बनाना चाहता हूं।

पर चल रहा है node v5.3.0


44
2018-02-22 09:49


मूल


यह क्या हो रहा है / इसका उत्पादन क्या है console.log(res.transactions); - Jai
आप इसे किस पर्यावरण में चला रहे हैं? - nils
@nils, में node.js। मैंने ओपी टैग अपडेट किया। - Milkncookiez
@Milkncookiez कौन सा संस्करण? - Ben Fortune
मैं इस त्रुटि को नोड v5.3.0 में दोहराना नहीं कर सकता। क्या आपने संस्करण को दोबारा जांच लिया है node --version? - McMath


जवाब:


मुझे त्रुटि थी expression expected रिपोर्ट द्वारा Webstorm एक Node.js प्रोग्राम संपादित करते समय। इस मामले में समाधान भाषा संस्करण को उस संस्करण में सेट करना है जो इस सुविधा का समर्थन करता है।

enter image description here


108
2018-02-26 11:01



ECMAScript 6 में बदल गया, लेकिन मुझे अभी भी यह त्रुटि लाइन पर मिल रही है - var texts = entity.name.split(" ").filter(s => s); (स्ट्रिंग को विभाजित करने के लिए, खाली परिणामों से परहेज करना)। किसी भी विचार को हल करने के लिए कैसे? - Itai
मुझे यह समस्या मिलती है और मुझे उस भाषा संस्करण सेटिंग को ईएस 6 से कुछ और फिर वापस लेना पड़ता है। वास्तव में गुस्से वाला। - greg
यह मेरे नोडजेस प्रोजेक्ट के लिए पीएचपीएसटॉर्म में भी काम करता था। जैसा कि आपने पहले ही बताया है, यह सेटिंग एक जावास्क्रिप्ट सेटिंग है (जावास्क्रिप्ट में मिली, नोडजेस नहीं)। - Alexander Taubenkorb
IntelliJ आइडिया में भी इस मुद्दे को हल किया - jjj


निम्नलिखित है जो मैंने मेरे लिए किया है। (1) मैं @1123 द्वारा चयनित उत्तर में शो के रूप में जावास्क्रिप्ट भाषा विकल्प ECMAScript 6 में बदलता हूं

(2) मैं वेबस्टॉर्म परियोजना / आवेदन बंद करता हूं।

(3) प्रोजेक्ट फ़ोल्डर पर नेविगेट करें और हटाएं ।विचार इसमें फ़ोल्डर मेरा मानना ​​है कि यह परियोजना / अनुप्रयोग के बारे में जानकारी रखने के लिए उत्पन्न फ़ोल्डर वेबस्टॉर्म है।

(4) मैंने अपनी परियोजना को वेबस्टॉर्म में फिर से खोल दिया और त्रुटियां चली गईं।


12
2018-05-26 08:06



मैंने कोशिश की है, और एक अतिरिक्त पहलू पाया है। फ़ाइल> डिफ़ॉल्ट सेटिंग्स में इसे समायोजित न करें, क्योंकि यह केवल नई परियोजनाओं को प्रभावित करता है। इसके बजाय, आपको इसे वेबस्टॉर्म> प्राथमिकताएं> भाषाएं और फ्रेमवर्क -> जावास्क्रिप्ट में बदलना होगा। और लागू करने के लिए मत भूलना! इस तरह की परेशान, व्यर्थ, जानबूझकर त्रुटियां (WebStorm 6.0 के मौजूद होने पर डिफ़ॉल्ट रूप से ECMAScript 5.1 का उपयोग क्यों करता है और इसका वाक्यविन्यास इतना आम है ??) एक कारण है कि मैं अक्सर विजुअल स्टूडियो और सी # पर वापस जाता हूं - हालांकि मुझे यकीन है कोई भी डेवलपर कहता है कि उनके सबसे जाने-माने आईडीई और भाषा के पक्ष में। - user3685427


आपका वाक्यविन्यास सही है और नोडजेस तीर फ़ंक्शंस का समर्थन करता है, लेकिन आप डिफ़ॉल्ट रूप से सक्षम नहीं हैं।

जब आप इसे सक्षम करने के लिए नोड प्रक्रिया शुरू करते हैं तो आपको "--armony" ध्वज जोड़ना चाहिए।


0
2018-02-22 10:04



कृपया डाउनवोट क्यों करें? - sitifensys
तीर कार्य डिफ़ॉल्ट रूप से सक्षम हैं - McMath
nodejs.org/en/docs/es6/... कहते हैं कि तीर कार्यों को रन-टाइम ध्वज की आवश्यकता नहीं है। :) - Milkncookiez
हम्म हाँ, मेरा बुरा। मेरे लैपटॉप पर नोड बहुत सुंदर है (0.12) लगता है। मुझे आपके कोड स्निपेट के साथ कोई समस्या नहीं दिख रही है। - sitifensys