Node.js 12 में वैकल्पिक चेनिंग का उपयोग कैसे करें


17

वैकल्पिक श्रृंखलन ( obj?.param1?.param2) एक बड़ी विशेषता प्रतीत होती है और मैं वास्तव में इसे लागू होते देखना चाहता था और अंत में इस तरह के एक सरल ऑपरेशन के लिए नेस्टेड इफ, मनमाने कार्यों और क्या नहीं से छुटकारा मिलता है।

लेकिन एक समस्या है, यह काम नहीं करता है। मैंने Node 12 को अद्यतन किया और मुझे अभी भी एक त्रुटि मिली है:

var dude = res?.param?.params[0]
SyntaxError: Unexpected token '.'

या

var dude = res.param?.params[0]
SyntaxError: Unexpected token '.'

समस्या क्या है?

क्या मुझे इस सुविधा को सक्षम करने के लिए कुछ भाषा विन्यास बदलने या एक पुस्तकालय डाउनलोड करने की आवश्यकता है? या यह अभी तक बाहर नहीं है?


2
में है Stage 4। Node.js अभी तक इसका समर्थन नहीं करता है। developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
श्रीधर

मैंने 'नोडजल्स नल प्रसार' की खोज की और शुरू में यह प्रश्न नहीं पाया। उम्मीद है कि इस टिप्पणी से सरचार्ज में सुधार होगा।
कासिमिर

मुझे डर है कि मैं इसके बारे में ज्यादा कुछ नहीं कर सकता। इसके लिए एक टैग है, लेकिन यह जावास्क्रिप्ट से संबंधित नहीं है और अच्छा करने की तुलना में अधिक भ्रम पैदा करेगा।
अल्मारिक

जवाबों:


17

वैकल्पिक चाइनिंग वर्तमान में Node.js13 संस्करण में समर्थित नहीं है और इसके नीचे Node.jsसंस्करण 14 से समर्थित होगा और इसे ले जाया जाने पर अधिकांश ब्राउज़र Stage 4। वर्तमान में, कुछ प्लेटफ़ॉर्म इसका समर्थन कर रहे हैं, आप दिए गए लिंक में वैकल्पिक चेनिंग का समर्थन करने वाले प्लेटफार्मों की सूची पा सकते हैं । आप --harmonyध्वज का उपयोग करके वैकल्पिक सक्षम कर सकते हैं ।


10

वैकल्पिक श्रृंखलन सुविधा के लिए कल्पना सिर्फ करने के लिए प्रोत्साहित किया गया था स्टेज 4 (समाप्त) पर 22 दिसंबर, 2019 । ऐनक फाइनल होने से पहले ही नोड 12 आ गया - और इसलिए उस बात के लिए नोड 13 भी था।

नोड.ग्रीन के अनुसार , नोड 14 के साथ शुरू होने पर वैकल्पिक चैनिंग का समर्थन किया जाएगा, लेकिन फिर भी --harmonyध्वज की आवश्यकता होगी । (यह --harmonyध्वज के नोड के विवरण के साथ संघर्ष करने के लिए लगता है - V8 की शिपिंग सुविधाओं को ध्वज की आवश्यकता नहीं है - इसलिए मुझे यकीन नहीं है कि इससे क्या बना है।) फिर भी, इसे ध्वज की आवश्यकता है या नहीं, मैं नहीं चाहता। ' अप्रैल 2020 के आसपास नोड 14 रिलीज़ होने तक इस सुविधा को देखने की उम्मीद नहीं है ।

यदि आप आज वैकल्पिक चैनिंग के साथ खेलना चाहते हैं, तो आपका सबसे अच्छा शर्त टाइपस्क्रिप्ट (जिसमें संस्करण 3.7 में वैकल्पिक चेनिंग को जोड़ा गया है ) या बैबल की तरह प्रीप्रोसेसर का उपयोग करना है ।


10

मैं नोडज v13.7.0 का उपयोग करने में सक्षम था - धार्मिक ध्वज।

नोड - धर्म myCode.js

दीना

अपरिभाषित

अपरिभाषित

//myCode.js

const adventurer = {
  name: 'Alice',
  cat: {
    name: 'Dinah'
  }
};

const catName = adventurer.cat?.name;
console.log(catName);
// expected output: Dinah
const dogName = adventurer.dog?.name;
console.log(catName);
//expected output: undefined

console.log(adventurer.someNonExistentMethod?.())
//expected output: undefined

0

वैकल्पिक चेनिंग को Node.jsv14 के साथ लागू किया जाएगा, जो 20/04/2020 को जारी किया जाएगा। अब तक, आप के Babelसाथ उपयोग कर सकते हैं @babel/plugin-proposal-optional-chaining

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.