TypeScript Academy · पाठ

TupleToUnion और UnionToIntersection

प्रोग्राम के माध्यम से टपल और यूनियन के बीच रूपांतरण करें

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

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

TupleToUnion: अवधारणा

TupleToUnion एक टपल प्रकार को उसके तत्व प्रकारों के यूनियन में बदलता है — यह अलग-अलग प्रकारों से टपल बनाने की विपरीत प्रक्रिया है।

type TupleToUnion<T extends readonly any[]> = T[number];
type A = TupleToUnion<[string, number, boolean]>; // string | number | boolean

T[number] कैसे काम करता है

number से टपल को इंडेक्स करने पर सभी संख्यात्मक इंडेक्स एक साथ मिलते हैं, जिसे TypeScript तत्व प्रकारों के यूनियन के रूप में व्यक्त करता है।

type Tuple = [string, number, boolean];
type Elements = Tuple[number]; // string | number | boolean

as const के साथ TupleToUnion

मान वाले ऐरे से यूनियन निकालने के लिए as const ऐरे के साथ इसे संयोजित करें।

const COLORS = ["red", "green", "blue"] as const;
type Color = typeof COLORS[number]; // "red" | "green" | "blue"

UnionToIntersection: अवधारणा

यूनियन को इंटरसेक्शन में बदलना अधिक कठिन है और सभी सदस्यों को एकत्र करने के लिए फ़ंक्शन प्रकारों के साथ वितरक सशर्त प्रकारों की आवश्यकता होती है।

type UnionToIntersection<U> =
  (U extends any ? (x: U) => void : never) extends (x: infer I) => void
    ? I
    : never;

फ़ंक्शन युक्ति क्यों काम करती है

यूनियन सदस्यों पर वितरण करने से प्रत्येक सदस्य फ़ंक्शन प्रकार में लिपट जाता है। इसके बाद TypeScript संरचनात्मक बाधा को संतुष्ट करने के लिए सभी पैरामीटर प्रकारों का इंटरसेक्शन निर्धारित करता है।

type A = UnionToIntersection<{ a: 1 } | { b: 2 }>;
// { a: 1 } & { b: 2 }

UnionToTuple: कठिन समस्या

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

// Not reliable — union member order is unspecified
// Use TupleToUnion (safe) not UnionToTuple (fragile)

TupleToUnion का व्यावहारिक उपयोग

मान्य कुंजियाँ का यूनियन प्रकार बनाने के लिए स्ट्रिंग लिटरल वाले टपल से सभी मान्य कुंजियाँ निकालें।

const ALLOWED_METHODS = ["GET", "POST", "PUT", "DELETE"] as const;
type HttpMethod = typeof ALLOWED_METHODS[number];
function request(method: HttpMethod) { /* ... */ }

UnionToIntersection का व्यावहारिक उपयोग

यूनियन से कई मिक्सिन इंटरफ़ेस को एकल संयुक्त प्रकार में मिलाएँ।

type Mixin1 = { log(): void };
type Mixin2 = { save(): Promise<void> };
type Combined = UnionToIntersection<Mixin1 | Mixin2>;
// { log(): void } & { save(): Promise<void> }

प्रिमिटिव का इंटरसेक्शन

असंबंधित प्रिमिटिव प्रकारों का इंटरसेक्शन never देता है, क्योंकि कोई भी मान एक साथ string और number नहीं हो सकता।

type X = UnionToIntersection<string | number>; // never

जेनेरिक बाधाओं में इनका उपयोग

लचीले और प्रकार-सुरक्षित API बनाने के लिए जेनेरिक बाधाओं के भीतर TupleToUnion और UnionToIntersection को संयोजित करें।

function merge<T extends object[]>(...args: T): UnionToIntersection<T[number]> {
  return Object.assign({}, ...args) as any;
}

पुनरावलोकन: Tuple ↔ Union ↔ Intersection

TupleToUnion T[number] इंडेक्सिंग का उपयोग करता है। UnionToIntersection infer के साथ वितरक-फ़ंक्शन युक्ति का उपयोग करता है। दोनों उन्नत प्रकार हेरफेर के लिए आवश्यक उपकरण हैं।

त्वरित जाँच

TupleToUnion<[string, number]> क्या है?

आपने क्या सीखा

TupleToUnion टपल से तत्वों के यूनियन निकालने के लिए संख्यात्मक इंडेक्सिंग का उपयोग करता है। UnionToIntersection वितरक-फ़ंक्शन युक्ति का उपयोग करता है। ये उन्नत TypeScript प्रकार हेरफेर के मूलभूत पैटर्न हैं।

शुरुआत निःशुल्क

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

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

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

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

क्या “TupleToUnion और UnionToIntersection” पाठ निःशुल्क है?

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

“TupleToUnion और UnionToIntersection” में मैं क्या सीखूँगा?

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

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

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

“TupleToUnion और UnionToIntersection” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. DeepPartial और DeepReadonly
  2. Flatten और UnwrapPromise यूटिलिटी
  3. TupleToUnion और UnionToIntersection
  4. TypeScript प्रकार यूटिलिटी लाइब्रेरी प्रकाशित करना
← TypeScript Academy पर वापस जाएँ