अहा, TypeScript में कंडीशनल टाइप्स... ये गिरगिट की तरह हैं, आपके कोड की जरूरतों के अनुसार आकार बदलते और अनुकूल होते हैं! शायद आप बेसिक टाइप्स से पहले से परिचित हैं, लेकिन कंडीशनल टाइप्स इसे अगले स्तर पर ले जाते हैं। इन्हें स्मार्ट टाइप्स के रूप में सोचें जो परिस्थितियों के अनुसार ढलते हैं—जैसे टाइपिंग के सुपरहीरो। तो, आराम से बैठिए और अपने TypeScript कोड में कुछ जादू जोड़ने के लिए तैयार हो जाइए! 🧙♂️
कंडीशनल टाइप्स क्यों उपयोग करें? 🧐
TypeScript में, हमें पसंद है जब सब कुछ सुव्यवस्थित और कड़ाई से टाइप किया गया हो। लेकिन कभी-कभी, हमारे कोड को एक ऐसे टाइप की आवश्यकता होती है जो कुछ शर्तों के आधार पर अनुकूल हो। कल्पना कीजिए कि आपके पास एक फंक्शन है जो इनपुट पैरामीटर्स के आधार पर या तो string
या number
रिटर्न कर सकता है। 😱 कंडीशनल टाइप्स के बिना, आपको हर केस को मैन्युअली मैनेज करना होगा, और यह जल्दी ही थकाऊ हो जाता है! सौभाग्य से, कंडीशनल टाइप्स लचीलापन और प्रतिक्रियाशीलता लाते हैं, एक टाइपिंग निंजा की तरह। 🥷
बेसिक्स: कंडीशनल टाइप्स का सिंटैक्स 🧩
कंडीशनल टाइप्स कुछ हद तक टर्नरी ऑपरेटर की तरह हैं, लेकिन टाइप्स के लिए। यहाँ एक उदाहरण है जो आपको एक झलक देगा:
इस उदाहरण में, IsString
एक कंडीशनल टाइप है जो जाँचता है कि क्या T
एक string
है। यदि है, तो यह "यह एक स्ट्रिंग है"
रिटर्न करता है, अन्यथा "यह स्ट्रिंग नहीं है"
। काफी सरल है, लेकिन प्रतीक्षा करें जब तक आप नहीं देखते कि हम अधिक उन्नत मामलों में क्या कर सकते हैं!
व्यावहारिक उदाहरण: कॉन्फ़िगरेशन के आधार पर टाइप को अनुकूलित करना 🛠️
कल्पना कीजिए एक फंक्शन जो एक कॉन्फ़िगरेशन पैरामीटर लेता है और उस कॉन्फ़िगरेशन के आधार पर एक अलग टाइप रिटर्न करना चाहिए। कंडीशनल टाइप्स इस तरह के जादू के लिए एकदम सही हैं ✨!
कोड उदाहरण
इस उदाहरण में, Response<T>
टाइप को mode
के "simple"
या "detailed"
होने के आधार पर अनुकूलित करता है। जादू होता है: fetchData(simpleConfig)
केवल data
के साथ एक ऑब्जेक्ट रिटर्न करता है, जबकि fetchData(detailedConfig)
में details
भी शामिल है। सुविधाजनक, है ना?
नेस्टेड कंडीशनल टाइप्स: टाइपिंग à la Carte 🧇
यहीं क्यों रुकें? आप और भी सटीक मामलों को संभालने के लिए कंडीशनल टाइप्स को नेस्ट भी कर सकते हैं! कल्पना कीजिए कि आप टाइप को न केवल mode
के आधार पर बल्कि इस बात पर भी अनुकूलित करना चाहते हैं कि उपयोगकर्ता प्रमाणित है या नहीं। कुछ एडवांस्ड टाइप जगलिंग के लिए तैयार हैं? 🎢
यहाँ, UserResponse
दो मानदंडों के आधार पर टाइप को अनुकूलित करता है: mode
और isAuthenticated
। परिणाम? अल्ट्रा-सटीक टाइपिंग जो सभी संभावित मामलों को कवर करती है!
infer
के साथ एडवांस्ड कंडीशनल टाइप्स: टाइप डिडक्शन 🕵️♂️
कुछ एडवांस्ड ट्रिक्स के लिए तैयार हैं? TypeScript में कंडीशनल टाइप्स के लिए एक विशेष कीवर्ड है: infer
। यह आपको अपने कंडीशनल टाइप में सीधे एक टाइप का अनुमान लगाने की अनुमति देता है। जटिल टाइप्स से जानकारी निकालने के लिए उपयोगी!
infer
के साथ उदाहरण
यहाँ, ReturnTypeOfFunction
एक फंक्शन के रिटर्न टाइप का अनुमान लगाने के लिए infer R
का उपयोग करता है। इस उदाहरण में, HelloReturnType
टाइप string
होगा क्योंकि getHello
एक स्ट्रिंग रिटर्न करता है।
निष्कर्ष 🎉
TypeScript में कंडीशनल टाइप्स आपके कोड के लिए सुपरपावर्स की तरह हैं। वे आपको डायनामिक टाइप्स बनाने और आपके कोड को सरल बनाते हुए कड़ी टाइपिंग बनाए रखने की अनुमति देते हैं। अपने सहयोगियों को प्रभावित करने के लिए तैयार हैं? इन कंडीशनल टाइप्स के साथ प्रयोग करें और अपने TypeScript कोड को संरचित करने के नए तरीके खोजें! 🚀
अब लगभग टाइप्स के लिए कोई बहाना नहीं—कंडीशनल टाइप्स के साथ, आपका TypeScript कोड लगभग बुलेटप्रूफ बन जाता है! 👌