TypeScript में फंक्शन ओवरलोडिंग: सही तरीके से घोषणा और उपयोग कैसे करें?
सभी को नमस्ते! मैंने अभी-अभी TypeScript सीखना शुरू किया है और फंक्शन ओवरलोडिंग का उपयोग करने की कोशिश करते समय एक समस्या का सामना करना पड़ा। मेरे पास एक `format` फंक्शन है जो पारित आर्गुमेंट्स के प्रकार के आधार पर अलग-अलग तरीके से काम करना चाहिए:
1. यदि एक स्ट्रिंग और एक नंबर पारित किया जाता है — स्ट्रिंग को रिपीटेशन के साथ फॉर्मेट करें।
2. यदि दो स्ट्रिंग पारित की जाती हैं — उन्हें एक सेपरेटर के माध्यम से जोड़ें।
3. यदि केवल एक नंबर पारित किया जाता है — इसे प्रीफिक्स के साथ स्ट्रिंग के रूप में लौटाएं।
मैंने ऐसा कोड लिखा, लेकिन TypeScript त्रुटि दे रहा है:
```typescript
function format(a: string, b: number): string;
function format(a: string, b: string): string;
function format(a: number): string;
function format(a: string | number, b?: string | number): string {
if (typeof a === 'number') {
return `ID: ${a}`;
}
if (typeof b === 'number') {
return a.repeat(b);
}
if (typeof b === 'string') {
return `${a} - ${b}`;
}
return a;
}
```
त्रुटि: `This overload signature is not compatible with its implementation signature.` मैं