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); // يعمل ``` أما إذا