TypeScript Academy · पाठ

वितरित सशर्त प्रकार

समझें कि सशर्त प्रकार यूनियन सदस्यों पर कैसे वितरित होते हैं

पाठ 4, कुल 4 में से13 चरण

वितरित सशर्त प्रकार, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्वागत है

वितरणशील सशर्त प्रकार किसी सशर्त प्रकार को यूनियन के प्रत्येक सदस्य पर अलग-अलग लागू करते हैं। यह शक्तिशाली व्यवहार यूनियन के रूपांतरण और फ़िल्टरिंग को सक्षम करता है।

वितरण क्या है

जब किसी सशर्त प्रकार में स्वतंत्र जेनेरिक T हो और T एक यूनियन हो, तो TypeScript सशर्त प्रकार को प्रत्येक यूनियन सदस्य पर अलग-अलग लागू करता है।
type Wrap<T> = T extends any ? { value: T } : never;
type R = Wrap<string | number>;
// = { value: string } | { value: number }

मुख्य शर्त

वितरण केवल तब होता है जब T स्वतंत्र (किसी आवरण में न रखा हुआ) जेनेरिक प्रकार पैरामीटर हो। T को टपल में लपेटने पर यह रुक जाता है।
type Bare<T> = T extends string ? 'yes' : 'no';
type Wrapped<T> = [T] extends [string] ? 'yes' : 'no';
type B = Bare<'a' | 'b'>; // 'yes' | 'yes' = 'yes'
type W = Wrapped<'a' | 'b'>; // 'no' — treated as a tuple

never से यूनियन फ़िल्टर करना

गलत शाखा से never लौटाने पर यूनियन के सदस्य फ़िल्टर होकर हट जाते हैं।
type StringsOnly<T> = T extends string ? T : never;
type S = StringsOnly<string | number | boolean>; // string

अंतर्निहित Extract

Extract को वितरणशील सशर्त प्रकार से लागू किया जाता है, जो U में असाइन किए जा सकने वाले सदस्यों को बनाए रखता है।
type Extract<T, U> = T extends U ? T : never;
type E = Extract<string | number | boolean, string | number>; // string | number

अंतर्निहित Exclude

Exclude, U में असाइन किए जा सकने वाले यूनियन सदस्यों को हटा देता है।
type Exclude<T, U> = T extends U ? never : T;
type Ex = Exclude<string | number | boolean, boolean>; // string | number

ToArray का वितरण

वितरण के माध्यम से प्रत्येक यूनियन सदस्य पर ToArray को अलग-अलग लागू करें।
type ToArray<T> = T extends any ? T[] : never;
type R = ToArray<string | number>; // string[] | number[]

वितरण रोकने का उपयोग

कभी-कभी आप पूरे यूनियन को एक ही प्रकार तर्क के रूप में लेना चाहते हैं, उस पर वितरण नहीं करना चाहते।
type IsUnion<T> = [T] extends [T] ? [T] extends [Exclude<T, T>] ? false : true : false;

वितरणशील मैप्ड प्रकार

चुनिंदा प्रॉपर्टी को बदलने के लिए वितरणशील सशर्त प्रकारों को मैप्ड प्रकारों के साथ मिलाएँ।
type PickByValue<T, V> = {
  [K in keyof T as T[K] extends V ? K : never]: T[K]
};

ReturnType में वितरणशील सशर्त प्रकार

वितरणशील व्यवहार के कारण ReturnType, फ़ंक्शन प्रकारों के यूनियन के साथ सही ढंग से काम करता है।
type Fn = (() => string) | (() => number);
type R = ReturnType<Fn>; // string | number

तत्काल बनाम विलंबित वितरण

TypeScript मुक्त प्रकार पैरामीटर वाले सशर्त प्रकारों का समाधान होने तक उनका मूल्यांकन स्थगित करता है — इसे विलंबित मूल्यांकन कहते हैं।

त्वरित जाँच

जब T स्वतंत्र जेनेरिक नहीं है, तब `type R = (string | number) extends string ? 'yes' : 'no'` क्या है?

पुनरावलोकन

जब T स्वतंत्र जेनेरिक पैरामीटर होता है, तब वितरणशील सशर्त प्रकार प्रत्येक यूनियन सदस्य पर अलग-अलग लागू होते हैं। यही Extract, Exclude और कस्टम यूनियन फ़िल्टरिंग को सक्षम करता है। वितरण रोकने के लिए इसे टपल में लपेटें।
शुरुआत निःशुल्क

एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
101
पाठ
352

अक्सर पूछे जाने वाले प्रश्न

क्या “वितरित सशर्त प्रकार” पाठ निःशुल्क है?

हाँ—“वितरित सशर्त प्रकार” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“वितरित सशर्त प्रकार” में मैं क्या सीखूँगा?

समझें कि सशर्त प्रकार यूनियन सदस्यों पर कैसे वितरित होते हैं आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“वितरित सशर्त प्रकार” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. keyof और इंडेक्स्ड एक्सेस प्रकार
  2. जेनेरिक सीमाएँ: प्रकार पैरामीटर को सीमित करना
  3. सशर्त प्रकार: T extends U ? X : Y
  4. वितरित सशर्त प्रकार
← TypeScript Academy पर वापस जाएँ