Avatar ·

كيفية إضافة خصائص ديناميكيًا إلى كائن في TypeScript (بدون أخطاء الأنواع)

مرحبًا بالجميع! لقد بدأت مؤخرًا في تعلم TypeScript وواجهت مشكلة حيرتني كثيرًا. أحتاج إلى إنشاء كائنات تُضاف إليها الخصائص ديناميكيًا أثناء تشغيل البرنامج. إليك مثال: أتلقى بيانات من API بصيغة JSON، لكن هيكل الاستجابة قد يتغير. أريد إنشاء كائن فارغ ثم ملؤه بالخصائص بناءً على البيانات المستلمة. في JavaScript العادي، يتم ذلك ببساطة: ```typescript const data = {}; data.name = "John"; // يعمل data.age = 30; // يعمل ``` ولكن عندما أحاول فعل الشيء نفسه في TypeScript، يُصدر المترجم خطأ: "Property 'name' does not exist on type '{}'". يشتكي TypeScript من أن الكائن `data` من النوع `{}` وليس لديه هذه الخصائص. لقد جربت خيارات مختلفة: - تعريف الكائن عبر `const data: any = {}` — هذا يعمل، لكني أفقد كل مزايا كتابة الأنواع. - إنشاء interface بحقول اختيارية — لكني لا أعرف مسبقًا أي الحقول ستُضاف. في الواقع،