If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
एक ऐसा feature जो TypeScript को और powerful बनाता है वो है Method Overloading
. Method overloading से हम एक ही method के multiple versions define कर सकते हैं, जो अलग-अलग parameter types या counts को handle करते हैं।
इस topic में हम TypeScript Method Overloading को detail में समझेंगे, उसके syntax, use cases, और examples के साथ।
Method overloading का मतलब है एक ही नाम के multiple methods define करना लेकिन उनके parameters अलग hone चाहिए।
इसका advantage यह होता है कि हम एक method को multiple तरीकों से use कर सकते हैं बिना new method names बनाये।
TypeScript में method overloading का concept JavaScript के upper layer पर implement होता है, क्योंकि JavaScript खुद method overloading को support नहीं करता।
TypeScript compiler हमारे overloads को check करता है और ensure करता है कि method को सही parameters के साथ call किया जा रहा है। और classes के अलावा इसे आप normally functions में भी apply कर सकते हैं।
●●●
सबसे पहले हम function overloading का एक example देख लेते हैं फिर हम class के अदंर method overloading का example देखेंगे।
function greet(name: string): void;
function greet(name: string, age: number): void;
function greet(name: string, age?: number): void {
if (age !== undefined) {
console.log(`Hello ${name}, you are ${age} years old.`);
} else {
console.log(`Hello ${name}`);
}
}
greet("John"); // Output: Hello John
greet("John", 25); // Output: Hello John, you are 25 years old.
यहाँ greet()
function को दो तरीके से overload किया गया है। पहला overload सिर्फ एक name parameter लेता है, और दूसरा overload एक optional age parameter भी लेता है।
●●●
TypeScript में classes के अंदर भी method overloading का use किया जा सकता है। Classes में methods को overload करने का process functions के जैसे ही होता है।
मतलब कि, आप multiple method signatures define करते हैं, और फिर एक implementation provide करते हैं जो सब overloads को support करे।
class Person {
// Overloaded signatures
sayHello(name: string): void;
sayHello(name: string, age: number): void;
// Single implementation
sayHello(name: string, age?: number): void {
if (age !== undefined) {
console.log(`Hello, ${name}. You are ${age} years old.`);
} else {
console.log(`Hello, ${name}.`);
}
}
}
const person = new Person();
person.sayHello("John"); // Output: Hello, John.
person.sayHello("John", 25); // Output: Hello, John. You are 25 years old.
इस example में sayHello()
method को overload किया गया है जिसमे एक overload सिर्फ name लेता है, और दूसरा name
के साथ age
भी लेता है।
ध्यान रहे - TypeScript में overloading का concept थोड़ा अलग है , बाकी programming languages में method overloading में हर method का अपना खुद का implementation और logic होता है। जबकि TypeScript में Overloaded signatures को define किया जाता है उनका implementation नहीं। आपको एक single implementation करना होता है जो सभी overloads को handle करेगा। जैसा अभी तक आपने examples में देखा।
●●●
Code Reusability : एक method के multiple versions hone से code re-usability बढ़ती है। आपको new method names बनाने कि जरूरत नहीं होती, और एक ही method के different functionalities हो सकती हैं।
Flexibility : Users को methods को अलग-अलग तरीके से call करने कि flexibility मिलती है , जैसे कि एक parameter के साथ या multiple parameters के साथ।
Type Safety : TypeScript method overloading के साथ type safety ensure करता है , Compiler check करता है कि method को सही parameters के साथ call किया जा रहा है या नहीं।
TypeScript method overloading काफी powerful feature है, लेकिन कुछ limitations भी हैं -
TypeScript में आप different return types के साथ methods को overload नहीं कर सकते। सब overloads का return type same
होना चाहिए।
// This is NOT allowed function getData(id: number): string; function getData(id: number): number;
Overloaded signatures के अलग-अलग implementations नहीं हो सकते। एक single implementation overloads के सब cases को handle करेगा।
●●●
Method overloading का मतलब है एक method के multiple signatures define करना लेकिन implementation एक ही होती है।
Overloading से आप methods को अलग-अलग parameter types या counts के साथ call कर सकते हैं।
Classes और functions दोनो में method overloading का use हो सकता है।
Optional parameters का use भी overloading का एक तरीका है।
I Hope , आपको TypeScipt में Method overloading समझ आ गया होगा।
Happy coding ?