Avatar ·

ما هي ملفات *.d.ts في TypeScript ولماذا هي مطلوبة؟

مرحبًا بالجميع! لقد بدأت مؤخرًا في تعلم TypeScript وواجهت شيئًا غير واضح بالنسبة لي. في المشاريع، أرى غالبًا ملفات بامتداد `.d.ts`. على سبيل المثال، يوجد مجلد `node_modules`، وداخله في المكتبات توجد مثل هذه الملفات. فتحت أحدها، وكان فيه شيء مثل: ```typescript declare module 'lodash' { export function chunk(array: T[], size?: number): T[][]; } ``` لا أفهم تمامًا ما هذا. هل هو نوع منفصل من ملفات TypeScript؟ لماذا نحتاج إليها إذا كان لدينا ملفات `.ts` عادية؟ حاولت بنفسي إنشاء مثل هذا الملف وكتابة بعض الكود فيه، لكن المترجم يشتكي عندما أحاول تعريف متغيرات بدون الكلمة المفتاحية `declare`. كما لاحظت أنه إذا كتبت `import` من مكتبة لا تحتوي على مثل هذه الملفات، فإن TypeScript يعطي خطأ "Cannot find module". يبدو أن ملفات `.d.ts` هذه تساعد TypeScript في فهم الأنواع الموجودة في كود JavaScript العادي؟ سأكون ممتنًا لشرح مفصل، ويفضل أن يكون مع أمثلة.