व्यवहार में T extends U ? X : Y
व्यावहारिक कंडीशनल प्रकार लिखें; यूनियन पर वितरण सीखें और आवश्यकता पड़ने पर इसे रोकने का तरीका जानें।
व्यवहार में T extends U ? X : Y, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 3 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
परिचय
लक्ष्य: प्रकार-तंत्र में तर्क व्यक्त करने के लिए सशर्त प्रकारों का उपयोग करना और समझना कि वे यूनियन पर कब वितरित होते हैं।
- पैटर्न:
T extends U ? X : Y - वितरण: यूनियन के प्रत्येक सदस्य पर शाखा लागू होती है
मूल पैटर्न
सशर्त प्रकार इस आधार पर एक शाखा चुनते हैं कि T, string को असाइन किया जा सकता है या नहीं।
type IsString<T> = T extends string ? true : false
type A = IsString<string>
// ^ true
type B = IsString<number>
// ^ falseवितरण
नंगे T के साथ जाँच यूनियन के प्रत्येक सदस्य पर चलती है: string | number, string[] | number[] बन जाता है।
type ToArray<T> = T extends any ? T[] : never
type C = ToArray<string | number>
// distributes:
// C is string[] | number[]वितरण से बाहर रहना
वितरण रोकने और यूनियन को एक संपूर्ण इकाई मानने के लिए T को टपल ([T]) में लपेटें।
type ToArrayNoDist<T> = [T] extends [any] ? T[] : never
type D = ToArrayNoDist<string | number>
// no distribution:
// D is (string | number)[]वास्तविक उपयोगिता
इस पैटर्न का उदाहरण: ऐरे के लिए ElementType, infer का उपयोग करके तत्व निकालता है; अन्यथा प्रकार को उसी रूप में छोड़ देता है।
type NonEmptyArray<T> = T[] extends [] ? never : T[]
// Usually better:
// type ElementType<T> = T extends ReadonlyArray<infer U> ? U : T
type E1 = ElementType<string[]>
// ^ string
type E2 = ElementType<readonly number[]>
// ^ number
type E3 = ElementType<string>
// ^ stringसुझाव
सुझाव: शर्तों को सरल रखें; परिनियोजन पर ध्यान दें; सहायक प्रकारों का पुनः उपयोग करें; जटिल संयोजनों के लिए परीक्षण फ़ाइलें शामिल करें।
// Tips
// - Keep conditions simple; deep nesting harms readability
// - Document distribution behavior for teammates
// - Prefer helper aliases (ElementType, Awaited) for reuse
// - Watch for De Morgan like logic when composing unionsवितरण जाँच
त्वरित जाँच: सशर्त प्रकार कब वितरित होते हैं?
पुनरावलोकन
पुनरावलोकन: सशर्त प्रकार प्रकारों में तर्क का मॉडल बनाते हैं। वितरण यूनियन के प्रत्येक सदस्य पर लागू होता है; इससे बाहर रहने के लिए टपल में लपेटें।
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “व्यवहार में T extends U ? X : Y” पाठ निःशुल्क है?
हाँ—“व्यवहार में T extends U ? X : Y” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“व्यवहार में T extends U ? X : Y” में मैं क्या सीखूँगा?
व्यावहारिक कंडीशनल प्रकार लिखें; यूनियन पर वितरण सीखें और आवश्यकता पड़ने पर इसे रोकने का तरीका जानें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 1वाँ पाठ है।
“व्यवहार में T extends U ? X : Y” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- व्यवहार में T extends U ? X : Y
- ReturnType-जैसी यूटिलिटी के लिए infer
- अंतर्निर्मित: ReturnType, Parameters, InstanceType आदि