تحميل الوظائف في 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.` أنا