Avatar ·

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