Avatar ·

في TypeScript: ما الفرق بين `any` و `Object` ومتى يتم استخدام كل منهما؟

مرحباً بالجميع! لقد بدأت للتو في تعلم TypeScript وأشعر بالحيرة تجاه نوعين: `any` و `Object`. للوهلة الأولى يبدوان متشابهين — كلاهما يسمح بتخزين أي شيء. لكني أشعر أن هذا غير صحيح، وأن هناك فرقاً مهماً بينهما. إليك مثال يربكني. أكتب دالة يجب أن تستقبل أي نوع بيانات وتعيده كما هو: ```typescript function identityAny(value: any): any { return value; } function identityObject(value: Object): Object { return value; } ``` كلا الدالتين تعملان. لكن عندما أحاول استدعاءهما واستخدام النتيجة، ألاحظ سلوكاً غريباً. إذا مررت رقمًا إلى `identityAny`، يمكنني استدعاء دوال الأرقام بسهولة: ```typescript let numAny = identityAny(42); numAny.toFixed(2); // يعمل ``` أما إذا