menu

टाइपस्क्रिप्ट में फ़ंक्शन ओवरलोडिंग

कभी-कभी ऐसे फ़ंक्शन मिलते हैं जो ऐसे मान लौटाते हैं, जिनका प्रकार पारित पैरामीटर पर निर्भर करता है। इसके लिए टाइपस्क्रिप्ट में फ़ंक्शन की ओवरलोडिंग का उपयोग किया जाता है। यह फ़ंक्शन के विभिन्न सिग्नेचर वेरिएंट्स निर्दिष्ट करने की अनुमति देती है।

आइए एक उदाहरण देखें। मान लीजिए कि हमारे पास एक फ़ंक्शन है जो स्ट्रिंग के वर्णों को अक्षरों की सरणी में विभाजित करता है:

function splitStr(str: string): string[] { return str.split(''); }

मान लीजिए कि हमारे पास एक फ़ंक्शन भी है जो संख्या के अंकों को अंकों की सरणी में विभाजित करता है:

function splitNum(num: number): number[] { let str: string = String(num); let arr: string[] = str.split(''); return arr.map(elem => +elem); }

आइए दोनों फ़ंक्शनों को एक में मिला दें। नए फ़ंक्शन को पैरामीटर के प्रकार के आधार पर या तो संख्याओं की सरणी या स्ट्रिंग्स की सरणी लौटानी चाहिए।

हमारे फ़ंक्शन के विभिन्न सिग्नेचर घोषित करने के लिए ओवरलोडिंग का उपयोग करें:

function splitVal(val: number): number[]; function splitVal(val: string): string[] { // दोनों सिग्नेचर का कार्यान्वयन }

अब फ़ंक्शन का कार्यान्वयन लिखते हैं। इसके कोड में हमें एक शर्त द्वारा यह निर्धारित करना होगा कि फ़ंक्शन के किस सिग्नेचर ने काम किया है, और इसके आधार पर सही प्रकार के परिणाम के साथ आवश्यक कोड चलाना होगा:

function splitVal(val: number): number[]; function splitVal(val: string): string[] { if (typeof val === 'string') { return val.split(''); } else { let str: string = String(val); let arr: string[] = str.split(''); return arr.map((elem: string): number => +elem); } }

अन्य भाषाओं के विपरीत, टाइपस्क्रिप्ट में ओवरलोडिंग में एक फ़ंक्शन बनाया जाता है। एक ही नाम के साथ, लेकिन अलग-अलग सिग्नेचर वाले कई फ़ंक्शन नहीं बनाए जा सकते।

एक फ़ंक्शन लिखें जो DOM तत्व का टेक्स्ट लौटाएगा या बदलेगी। इसे इस प्रकार काम करना चाहिए:

text('#elem', 'text'); // टेक्स्ट सेट करेगा text('#elem'); // वर्तमान टेक्स्ट लौटाएगा
हिन्दी
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
हम साइट के कार्य, विश्लेषण और व्यक्तिगतकरण के लिए कुकीज़ का उपयोग करते हैं। डेटा प्रसंस्करण गोपनीयता नीति के अनुसार किया जाता है।
सभी स्वीकार करें कॉन्फ़िगर करें अस्वीकार करें