لماذا نحتاج إلى الكلمة المفتاحية `declare` في TypeScript؟ اشرح مع أمثلة
مرحباً بالجميع! بدأت تعلم TypeScript ووجدت الكلمة المفتاحية `declare`. في التوثيق الرسمي مكتوب أنها تُستخدم لـ "إعلان المتغيرات والدوال والكلاسات التي توجد في مكان آخر". لكنني لا أفهم تماماً لماذا نحتاجها وكيف تعمل عملياً.
على سبيل المثال، أكتب سكريبت بسيط يستخدم المتغير العام `$` (jQuery). أعلم أنه تم تضمينه عبر CDN في HTML، لكن TypeScript يشتكي من أن `$` غير معرفة. جربت كتابة:
```typescript
declare var $: any;
```
واختفى الخطأ. لكن لماذا لا يمكنني ببساطة كتابة `var $: any;`؟ ما الفرق؟ إذا كتبت `let $: any;`، فهذا سيعمل أيضاً، لكن TypeScript سيعتبر أنني أنشئ متغيراً جديداً، بدلاً من وصف متغير موجود بالفعل.
أيضاً، رأيت أن `declare` يُستخدم في ملفات `.d.ts`. لماذا نحتاجها أصلاً، إذا كان يمكنني كتابة كل شيء في ملفات `.ts` العادية؟ اشرح، من فضلك، بكلمات بسيطة، ما هو الغرض من `declare` وفي أي حالات يُستخدم.