फ़ंक्शन ओवरलोड और कॉल सिग्नेचर
अलग-अलग कॉल आकृतियों के लिए ओवरलोड सिग्नेचर घोषित करें और लचीले API के लिए ऑब्जेक्ट प्रकारों के भीतर कॉल सिग्नेचर का उपयोग करें।
फ़ंक्शन ओवरलोड और कॉल सिग्नेचर, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 3 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
परिचय
लक्ष्य: ओवरलोड का उपयोग करके ऐसे फ़ंक्शन मॉडल करना सीखें, जो अलग-अलग इनपुट स्वीकार करके अलग-अलग आउटपुट लौटाते हैं, और कॉलबैक-जैसे एपीआई के लिए ऑब्जेक्ट टाइप में कॉल सिग्नेचर का वर्णन करना सीखें।
ओवरलोड पैटर्न
ओवरलोड कई सिग्नेचर और एक इम्प्लीमेंटेशन के रूप में घोषित किए जाते हैं, जो इनपुट को सीमित करके सही टाइप लौटाता है।
// 1) Overload signatures (no body)
function parse(input: string): number;
function parse(input: number): string;
// 2) Single implementation compatible with all overloads
function parse(input: string | number): string | number {
if (typeof input === "string") {
return input.length; // string -> number
} else {
return String(input); // number -> string
}
}
console.log(parse("TS")); // 2 (number)
console.log(parse(123)); // "123" (string)कॉल सिग्नेचर
कॉल सिग्नेचर किसी ऑब्जेक्ट प्रकार को ओवरलोड सहित कॉल किए जा सकने योग्य बनाता है (यह उन लाइब्रेरी के लिए उपयोगी है जो गुणधर्मों वाले कॉल किए जा सकने योग्य फ़ंक्शन उपलब्ध कराती हैं)।
type Stringify = {
(v: number): string;
(v: boolean): string;
};
const toStr: Stringify = (v: number | boolean) => {
return typeof v === "number" ? v.toFixed(1) : (v ? "true" : "false");
};
console.log(toStr(3));
console.log(toStr(false));कार्यान्वयन में प्रकार-संकुचन
कार्यान्वयन को सभी ओवरलोड रूपों को संभालना चाहिए। सुरक्षित रूप से शाखा चुनने के लिए in जाँच या विभेदित यूनियन का उपयोग करें।
function area(value: { r: number } | { w: number; h: number }): number {
if ("r" in value) {
return Math.PI * value.r ** 2; // circle
}
return value.w * value.h; // rect
}
console.log(area({ r: 2 }));
console.log(area({ w: 3, h: 4 }));ओवरलोड बनाम यूनियन
ओवरलोड बनाम यूनियन:
- ओवरलोड प्रत्येक कॉल के लिए सटीक वापसी प्रकार देते हैं।
- यूनियन एक ही सिग्नेचर रखते हैं, जो सरल होता है लेकिन कम विशिष्ट होता है।
- जब कॉल करने वालों को सटीक वापसी प्रकारों से लाभ हो, तब ओवरलोड चुनें।
DX सुझाव
सुझाव:
- ओवरलोड की संख्या कम और स्पष्ट रखें।
- पैरामीटर और वापसी मानों के अंतर का दस्तावेज़ीकरण करें।
- जहाँ यह उपयोगकर्ता अनुभव सुधारता हो, वहाँ वापसी प्रकार की सटीकता को प्राथमिकता दें।
ओवरलोड परीक्षण
त्वरित परीक्षण: कौन-सा प्रतिरूप फ़ंक्शन ओवरलोड को सही ढंग से घोषित करता है?
पुनरावलोकन
पुनरावलोकन: प्रत्येक कॉल के लिए सटीक प्रकारों हेतु ओवरलोड और कॉल किए जा सकने वाले ऑब्जेक्ट का मॉडल बनाने के लिए कॉल सिग्नेचर का उपयोग करें। सभी स्थितियों को समेटने के लिए एकल कार्यान्वयन के भीतर प्रकार को संकुचित करें।
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “फ़ंक्शन ओवरलोड और कॉल सिग्नेचर” पाठ निःशुल्क है?
हाँ—“फ़ंक्शन ओवरलोड और कॉल सिग्नेचर” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“फ़ंक्शन ओवरलोड और कॉल सिग्नेचर” में मैं क्या सीखूँगा?
अलग-अलग कॉल आकृतियों के लिए ओवरलोड सिग्नेचर घोषित करें और लचीले API के लिए ऑब्जेक्ट प्रकारों के भीतर कॉल सिग्नेचर का उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 1वाँ पाठ है।
“फ़ंक्शन ओवरलोड और कॉल सिग्नेचर” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- फ़ंक्शन ओवरलोड और कॉल सिग्नेचर
- this पैरामीटर टाइपिंग; void, never
- असर्शन फ़ंक्शन और उपयोगकर्ता-परिभाषित टाइप गार्ड