تحميل الدوال في 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