टाइपप्रति पाइपलाइन ऑपरेटर

टाइपस्क्रिप्ट में जंजीर फ़ंक्शन कॉल लिखें

एक नए ऑपरेटर के लिए समय

यदि आप टाइपस्क्रिप्ट के कार्यों का बहुत अधिक उपयोग कर रहे हैं, तो हो सकता है कि जब कुछ फ़ंक्शन एक साथ बंधे हों, तो आपको अपना कोड बेहतर ढंग से लिखने की इच्छा महसूस हो सकती है। यहाँ इसका एक उदाहरण है कि मेरा इससे क्या मतलब है।

const scream = (s: string) => s + "!";
const quote = (s: string) => `"${s}"`;
cosnt toUpperCase = (s: string) => s.toUpperCase();

// The first function that executes is
// 'toUpperCase', whose results is proved
// to 'scream', which in turn returns to
// 'quote', which returns the final string
//
// "HELLO WORLD!"
const text = quote(scream(toUpperCase("Hello World")));

मुख्य समस्या यह है कि आपको टाइपस्क्रिप्ट के विनिर्देश के लिए फ़ंक्शन कॉल के पदानुक्रम के अपने मानसिक मॉडल को अनुकूलित करना होगा। विशेष रूप से, प्रत्येक फ़ंक्शन इनपुट के रूप में अन्य फ़ंक्शन रिटर्न वैल्यू लेता है, जिसके परिणामस्वरूप कोड होता है जहां मूल इनपुट मान दाहिने किनारे पर रखा जाता है।

यह किसी भी तरह से कोई समस्या नहीं है। कोड ठीक काम करता है, और एक बार जब आप प्रोग्रामिंग भाषा के सिंटैक्स के आदी हो जाते हैं, तो ऐसे निर्माण स्वाभाविक लगने लगते हैं।

पाइपलाइन ऑपरेटर अलग तरीके से क्या करता है

नए और वर्तमान में प्रायोगिक पाइपलाइन ऑपरेटर का उपयोग करके, टाइपस्क्रिप्ट आपको ऐसे जंजीर फ़ंक्शन कॉल को बाएं से दाएं लिखने में सक्षम बनाता है, जहां मूल इनपुट अब बाएं किनारे पर है।

const scream = (s: string) => s + "!";
const quote = (s: string) => `"${s}"`;
cosnt toUpperCase = (s: string) => s.toUpperCase();

// And here's the new sytanx, starting
// from left and movign throught the 
// call chain to the right.
// 
// It's immediately better to read and
// self explanatory, imho.
"Hello World" |> toUpperCase |> scream |> quote;

मेरी राय में प्रस्तावित वाक्यविन्यास बहुत शुरुआती-अनुकूल है, क्योंकि यह मानव भाषा की तरह अधिक पढ़ता है। और नेस्टेड फ़ंक्शन कॉल से बचकर, कुल मिलाकर कोड शैली क्लीनर और अधिक पठनीय है।

क्रमशः

लेखन के रूप में, चीजें अभी भी बहुत प्रारंभिक विकास में हैं। प्रस्तावित सुविधा का उपयोग किसी भी प्रकार के उत्पादन कोड में नहीं किया जाना चाहिए, बल्कि केवल एक छोटे से साइड प्रोजेक्ट के साथ खिलवाड़ करने के लिए किया जाना चाहिए। एक त्वरित शुरुआत के लिए, फ़ायरफ़ॉक्स फीचर फ्लैग "--enable-पाइपलाइन-ऑपरेटर" को सेट करने के बाद मूल रूप से सिंटैक्स का समर्थन करता है। एक बेबेल-प्लगइन भी उपलब्ध है।

अभी भी कुछ खुले प्रश्न हैं, उदाहरण के लिए नए ऑपरेटर का उपयोग करके कार्यों की एक श्रृंखला में एसिंक फ़ंक्शन कॉल को कैसे संभालना है। फिर भी यह सुविधा बहुत ही रोमांचक लगती है, भले ही यह कोई नई सुविधाएँ नहीं लाएगी। प्रस्तावित सिंटैक्स वास्तव में अच्छा लग रहा है और मैं टाइपस्क्रिप्ट टीम द्वारा अंतिम मसौदे की प्रतीक्षा करने के लिए उत्सुक हूं।

सुझाव

संबंधित

परिशिष्ट

भाषाएँ