Avatar ·

تحميل الدوال في TypeScript: كيف تعلن وتستخدم بشكل صحيح؟

مرحباً بالجميع! لقد بدأت للتو في تعلم TypeScript بعد JavaScript وواجهت موضوعاً غير مفهوم بالنسبة لي — تحميل الدوال (function overloading). في JavaScript اعتدت كتابة دوال يمكنها استقبال أنواع مختلفة من الوسائط، والتحقق منها داخلياً باستخدام `typeof` أو `instanceof`. على سبيل المثال، لدي دالة يجب أن تستقبل إما نصاً (string) أو رقماً (number)، وبناءً على ذلك تقوم بعمليات مختلفة. في JS كنت أفعل هكذا: ```typescript function format(input) { if (typeof input === 'string') { return input.trim(); } else if (typeof input === 'number') { return input.toFixed(2); } } ``` لكن في TypeScript أريد وصف الأنواع لهذه الدالة. جربت كتابة: ```typescript function format(input: string | number): string { // ... } ``` هذا يعمل، لكنني سمعت أن في TypeScript يوجد "تحميل حقيقي" للدوال، كما في C++ أو Java. حاولت فعل ذلك: ```typescript function format(input: string): string; function