TypeScript का नया मानक एक अप्रत्याशित सुविधा लेकर आया
डेवलपर समुदाय आश्चर्यचकित रह गया: दिसंबर 2022 में, Microsoft टीम ने TypeScript 5.0 के अंतिम विनिर्देश की घोषणा की, जिसमें अपेक्षित डेकोरेटर और प्रदर्शन सुधार के अलावा, स्ट्रक्चरल पैटर्न मैचिंग (pattern matching) के लिए प्रायोगिक समर्थन शामिल था — यह अवधारणा Python, Rust और Haskell के डेवलपर्स को लंबे समय से ज्ञात है।
यह खबर अंदरूनी सूत्रों के लिए भी आश्चर्यजनक थी: अक्टूबर 2022 में TypeScript की रोडमैप में इस सुविधा को 'भविष्य के संस्करणों के लिए अनुसंधान' के रूप में सूचीबद्ध किया गया था। हालांकि, अंतिम बिल्ड में यह --experimentalPatternMatching फ्लैग के तहत दिखाई दी।
«Python 3.10 में match-case जोड़े जाने के बाद हमें समुदाय से सैकड़ों अनुरोध मिले। यह पता चला कि जटिल डेटा प्रकारों के साथ काम करने के लिए TypeScript डेवलपर्स को इसी संक्षिप्तता की कमी थी», — TypeScript के प्रमुख आर्किटेक्ट Anders Hejlsberg ने टिप्पणी की।
नई संरचना इस प्रकार दिखती है:
match (value) {
case (x: number) when x > 0: console.log('Positive');
case (x: number) when x < 0: console.log('Negative');
default: console.log('Zero');
}Stack Overflow 2022 के सर्वेक्षण के अनुसार, 68% TypeScript डेवलपर्स पैटर्न मैचिंग की अनुपस्थिति को भाषा की मुख्य कमी मानते थे। अब, TypeScript 5.0 के आने से यह समस्या हल हो गई है — हालांकि प्रायोगिक मोड में।
विशेषज्ञ चेतावनी देते हैं: स्थिरीकरण तक (2023 में TypeScript 5.2 में अपेक्षित) प्रोडक्शन में इस सुविधा का उपयोग न करें। हालांकि, अब आप इसे pet-प्रोजेक्ट्स में परीक्षण कर सकते हैं। नए संस्करण का डाउनलोड npm के माध्यम से उपलब्ध है: npm install typescript@5.0.
याद दिला दें कि TypeScript 5.0 में बेहतर टाइप अनुमान प्रणाली, stage 3 से डेकोरेटर के लिए समर्थन, और AST-आधारित नए पार्सर के कारण संकलन समय में 25% की कमी भी शामिल है।