जेनेरिक फ़ंक्शन और बाधाएँ (extends, डिफ़ॉल्ट पैरामीटर)
जेनेरिक फ़ंक्शन बनाएँ, extends से बाधाएँ जोड़ें और सुविधाजनक API के लिए डिफ़ॉल्ट टाइप पैरामीटर का उपयोग करें।
जेनेरिक फ़ंक्शन और बाधाएँ (extends, डिफ़ॉल्ट पैरामीटर), CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 3 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
परिचय
लक्ष्य: जेनेरिक की सहायता से फ़ंक्शन को पुनः उपयोग योग्य और प्रकार-सुरक्षित बनाएँ। आप प्रकार पैरामीटर परिभाषित करेंगे, विस्तार-सीमाएँ जोड़ेंगे और बेहतर DX के लिए डिफ़ॉल्ट प्रकार पैरामीटर निर्धारित करेंगे।
पहचान जेनेरिक
एक प्रकार पैरामीटर <T> परिभाषित करें। कंपाइलर आर्ग्युमेंट से T का अनुमान लगा लेता है, इसलिए कॉल करने वालों को आम तौर पर इसे लिखने की आवश्यकता नहीं होती।
function identity<T>(x: T): T {
return x;
}
const a = identity(42); // T inferred as number
const b = identity("ts"); // T inferred as string
console.log(a, b);extends के साथ सीमा
आवश्यक संरचना (जैसे id) अनिवार्य करने के लिए विस्तार-सीमा का उपयोग करें। संरचनात्मक टाइपिंग के कारण T में अतिरिक्त फ़ील्ड हो सकते हैं।
function getId<T extends { id: number }>(item: T): number {
return item.id;
}
getId({ id: 1, name: "Ada" }); // OK (has id)
// getId({ name: "Lin" }); // Error: missing idकुंजी-ऑफ़ सीमा
K को keyof T से सीमित करें, ताकि केवल T के गुणधर्म नाम स्वीकार किए जाएँ। वापसी प्रकार उस गुणधर्म का प्रकार T[K] होता है।
function pluck<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const user = { id: 7, name: "Neo" };
const v1 = pluck(user, "name"); // string
const v2 = pluck(user, "id"); // number
console.log(v1, v2);डिफ़ॉल्ट प्रकार पैरामीटर
डिफ़ॉल्ट प्रकार पैरामीटर अनावश्यक दोहराव कम करते हैं। सामान्य स्थितियों में कॉल करने वाले <T> छोड़ सकते हैं, लेकिन आवश्यकता होने पर इसे बदल सकते हैं।
interface Box<T = string> {
value: T;
}
const aBox: Box = { value: "hi" }; // T defaults to string
const nBox: Box<number> = { value: 123 }; // explicit override
console.log(aBox.value, nBox.value);सुझाव
सुझाव:
- अनुमान को काम करने दें; अनावश्यक T एनोटेशन से बचें।
- विस्तार-सीमा तभी जोड़ें जब कार्यान्वयन को T के सदस्यों की आवश्यकता हो।
- सुविधाजनक, सामान्य स्थितियों के लिए डिफ़ॉल्ट उपलब्ध कराएँ।
सीमा परीक्षण
त्वरित परीक्षण: T extends { id: number } क्या सुनिश्चित करता है?
पुनरावलोकन
पुनरावलोकन: जेनेरिक फ़ंक्शन परिभाषित करें, विस्तार-सीमा से प्रतिबंध लगाएँ और एपीआई को लचीला लेकिन सहज बनाए रखने के लिए डिफ़ॉल्ट प्रकार पैरामीटर निर्धारित करें।
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “जेनेरिक फ़ंक्शन और बाधाएँ (extends, डिफ़ॉल्ट पैरामीटर)” पाठ निःशुल्क है?
हाँ—“जेनेरिक फ़ंक्शन और बाधाएँ (extends, डिफ़ॉल्ट पैरामीटर)” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“जेनेरिक फ़ंक्शन और बाधाएँ (extends, डिफ़ॉल्ट पैरामीटर)” में मैं क्या सीखूँगा?
जेनेरिक फ़ंक्शन बनाएँ, extends से बाधाएँ जोड़ें और सुविधाजनक API के लिए डिफ़ॉल्ट टाइप पैरामीटर का उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 1वाँ पाठ है।
“जेनेरिक फ़ंक्शन और बाधाएँ (extends, डिफ़ॉल्ट पैरामीटर)” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- जेनेरिक फ़ंक्शन और बाधाएँ (extends, डिफ़ॉल्ट पैरामीटर)
- Partial, Readonly, Record, Pick, Omit
- keyof/इंडेक्स्ड ऐक्सेस प्रकार (परिचय)