मॉड्यूल पाठ (1/2)
टाइप किए गए फ़ंक्शन
फ़ंक्शंस किसी भी जावास्क्रिप्ट एप्लिकेशन के मूलभूत निर्माण खंड हैं। टाइपस्क्रिप्ट में, हम इनपुट तर्क और रिटर्न मान दोनों को सटीक रूप से एनोटेट कर सकते हैं, जिससे हमारे इंटरफेस और फ़ंक्शन कॉल बेहद सुरक्षित और स्व-दस्तावेजीकरण बन जाते हैं।
वैकल्पिक और डिफ़ॉल्ट पैरामीटर
जावास्क्रिप्ट में, प्रत्येक पैरामीटर वैकल्पिक है और यदि छोड़ दिया जाए तो डिफ़ॉल्ट रूप से undefined हो जाता है। टाइपस्क्रिप्ट में, डिफ़ॉल्ट रूप से, प्रत्येक घोषित पैरामीटर अनिवार्य है।
हालाँकि, हम प्रश्न चिह्न (?) का उपयोग करके वैकल्पिक पैरामीटर परिभाषित कर सकते हैं, या सीधे फ़ंक्शन हस्ताक्षर में डिफ़ॉल्ट मान निर्दिष्ट कर सकते हैं।
1. वैकल्पिक पैरामीटर
वैकल्पिक पैरामीटर सभी अनिवार्य पैरामीटर के बाद में रखे जाने चाहिए:
function greetUser(name: string, title?: string): string {
if (title) {
return `Good morning ${title} ${name}`;
}
return `Hello ${name}`;
}2. डिफ़ॉल्ट पैरामीटर
यदि डिफ़ॉल्ट मान वाले पैरामीटर के लिए कोई मान प्रदान नहीं किया गया है, तो टाइपस्क्रिप्ट इसके प्रकार का अनुमान लगाता है और निर्दिष्ट डिफ़ॉल्ट निर्दिष्ट करता है:
function greetUserWithDefault(name: string, prefix: string = 'Hello'): string {
return `${prefix} ${name}`;
}बाकी पैरामीटर्स (...args)
जब हम तर्कों की एक परिवर्तनीय संख्या को स्वीकार करना चाहते हैं, तो हम बाकी ऑपरेटर का उपयोग कर सकते हैं। टाइपस्क्रिप्ट में, इन मापदंडों को एक सरणी के रूप में टाइप किया जाना चाहिए:
function sumAll(message: string, ...numbers: number[]): string {
const total = numbers.reduce((sum, n) => sum + n, 0);
return `${message} ${total}`;
}फ़ंक्शन प्रकार (कॉल हस्ताक्षर)
हम किसी फ़ंक्शन के प्रकार को स्वतंत्र रूप से परिभाषित कर सकते हैं और फिर इसे परिवर्तनीय घोषणाओं या कॉलबैक तर्कों में पुन: उपयोग कर सकते हैं:
// Define function type using type alias
type MathOperation = (a: number, b: number) => number;
const add: MathOperation = (x, y) => x + y;
const multiply: MathOperation = (x, y) => x * y;फ़ंक्शंस को अन्य फ़ंक्शंस (कॉलबैक) के तर्क के रूप में पास करते समय यह दृष्टिकोण आवश्यक है।
खुद कोशिश करना
अभ्यास 1: वैकल्पिक पैरामीटर्स
प्रारूप नाम नामक एक फ़ंक्शन बनाएं जो प्रथम नाम पैरामीटर (स्ट्रिंग) और वैकल्पिक अंतिम नाम पैरामीटर (स्ट्रिंग) स्वीकार करता है। यदि अंतिम नाम प्रदान किया गया है, तो 'पहला नाम अंतिम नाम' लौटाएं, अन्यथा केवल 'पहला नाम' लौटाएं।
संकेत दिखाएँ
याद रखें कि वैकल्पिक पैरामीटर अनिवार्य पैरामीटर के बाद अंतिम नाम?: स्ट्रिंग का उपयोग करके घोषित किया जाता है।
3 प्रयासों के बाद समाधान उपलब्ध है
अभ्यास 2: डिफ़ॉल्ट पैरामीटर
पावर नाम का एक फ़ंक्शन बनाएं जो एक आधार (संख्या) और एक घातांक (2 के डिफ़ॉल्ट मान वाली संख्या) स्वीकार करता है। फ़ंक्शन को घातांक तक बढ़ाए गए आधार के मान की गणना करनी चाहिए और उसे लौटाना चाहिए (Math.pow का उपयोग करें)।
संकेत दिखाएँ
फ़ंक्शन हस्ताक्षर के भीतर आधार: संख्या और घातांक: संख्या = 2 का उपयोग करें।
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम 3: फ़ंक्शन हस्ताक्षर
बाइनरीऑप नाम के एक प्रकार के उपनाम को परिभाषित करें जो दो संख्या मापदंडों को स्वीकार करने और एक संख्या लौटाने वाले फ़ंक्शन का वर्णन करता है। इसके बाद, BinaryOp प्रकार का एक निरंतर नामित योग घोषित करें जो जोड़ को लागू करता है।
संकेत दिखाएँ
फ़ंक्शन प्रकार के लिए सिंटैक्स (a: संख्या, b: संख्या) => संख्या है।
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम 4: कॉलबैक फ़ंक्शन
प्रोसेसआइटम्स नामक एक फ़ंक्शन बनाएं जो दो पैरामीटर स्वीकार करता है: आइटम (स्ट्रिंग्स की एक सरणी) और कॉलबैक (एक फ़ंक्शन जो एकल स्ट्रिंग स्वीकार करता है और कुछ भी नहीं लौटाता है, यानी, शून्य)। फ़ंक्शन को आइटम में प्रत्येक तत्व पर एक for...of लूप चलाना होगा और इसे कॉलबैक में पास करना होगा।
संकेत दिखाएँ
हस्ताक्षर को प्रोसेसआइटम्स(आइटम: स्ट्रिंग[], कॉलबैक: (आइटम: स्ट्रिंग) => शून्य): शून्य के रूप में घोषित करें और कॉलबैक को कॉल करने के लिए लूप का उपयोग करें।
3 प्रयासों के बाद समाधान उपलब्ध है