كيف تعمل استنتاج الأنواع
يحلّل المولّد JSON الخاص بك ويستنتج نوع TypeScript لكل قيمة: تصبح السلاسل string والأرقام number والقيم المنطقية boolean وتصبح null هي null. تُكتب المصفوفات T[] حيث T هو نوع العنصر المستنتج. عندما تحتوي مصفوفة على عناصر من أنواع مختلفة يصبح نوع العنصر اتحادًا مثل string | number.
تصبح الكائنات المتداخلة واجهات مسمّاة بحد ذاتها. يُسمّى الكائن الجذري "Root" افتراضيًا (قابل للتخصيص)، ويحصل كل كائن متداخل على اسم بصيغة PascalCase مشتق من مفتاحه — فمثلًا المفتاح "userProfile" يولّد واجهة "UserProfile". يحافظ هذا على أن المخرجات معيارية ومقروءة.
تُعلَّم الخصائص الموجودة في بعض عناصر المصفوفة والغائبة في أخرى تلقائيًا بأنها اختيارية بمُعدِّل ?. يُمثّل هذا بشكل صحيح استجابات API الواقعية حيث قد تظهر الحقول أو لا تظهر بحسب حالة السجل.
خيارات المخرجات والأسلوب
يمكنك الاختيار بين مخرجات interface وأسماء مستعارة للأنواع. الواجهات هي الخيار المثالي لوصف أشكال الكائنات وتدعم دمج التصريحات؛ تُفضَّل أسماء الأنواع المستعارة عندما تحتاج أنواع اتحاد على المستوى الأعلى. يُنتج المولّد واجهات افتراضيًا لكنه يستطيع التبديل إلى أسماء الأنواع المستعارة بنقرة واحدة.
يمكن إضافة مُعدِّلات readonly لجميع الخصائص لإنتاج أنواع غير قابلة للتغيير — مفيدة لحالة Redux وكائنات الإعداد ونماذج استجابات API التي لا ينبغي تغييرها بعد الإنشاء. تفضيل الفاصلة المنقوطة أو الفاصلة كمحددات للخصائص قابل للتهيئة أيضًا.
تُضاف الكلمة المفتاحية export بشكل افتراضي لكل واجهة حتى يكون الملف المولّد قابلًا للاستيراد فورًا. التغليف بنطاق اسم متاح لتجميع جميع الأنواع المولّدة تحت معرّف وحدة واحد وهو شائع في قواعد الكود الكبيرة.
سير عمل التطوير العملي
أكثر مسارات العمل شيوعًا هو تحديد نوع استجابة API خارجية. احصل على استجابة نموذجية والصق JSON واستخدم الواجهات المولّدة كمعامل نوع لاستدعاءات fetch أو طلبات Axios أو خطافات React Query. يُزيل هذا فئات كاملة من أخطاء النوع في وقت التشغيل.
عند بناء نموذج أولي لميزة جديدة غالبًا ما يكون لديك ملف بيانات نموذجي قبل وجود تعريفات أنواع رسمية. يُهيئ المولّد أنواعك من البيانات حتى تتمكن من كتابة كود آمن من حيث النوع فورًا وتحسين الأنواع مع استقرار المخطط.
تستخدم الفرق التي تُرحّل قواعد كود JavaScript إلى TypeScript المولّد لإنتاج ملفات واجهات دفعة واحدة لنماذج البيانات الموجودة. حتى الأنواع المولّدة غير المثالية تخدم كنقطة بداية أسرع بكثير من كتابة كل واجهة يدويًا.