تحويل JSON إلى أنواع TypeScript
أنواع TypeScript جاهزة من عيّنة JSON، بالكائنات المتداخلة والحقول الاختيارية.
الصق استجابة API أو أي JSON، وتظهر الأنواع فورًا. كلما كانت العيّنة أشمل كانت الأنواع أدق.
عن الأداة
تمر الأداة على كل قيمة في العيّنة وتجمع ما تراه في كل موضع: الحقل الذي ظهر في بعض عناصر المصفوفة دون غيرها يصبح اختياريًا (?)، والحقل الذي كان رقمًا مرة وnull مرة يصبح number | null، وكل كائن متداخل يصبح interface مستقلًا يحمل اسم المفتاح الذي جاء تحته.
الأنواع مستنتجة من العيّنة فقط، فدقتها بقدر شمول العيّنة. إذا كان حقل ما null في كل العيّنة فلا سبيل لمعرفة نوعه، فيُكتب unknown لتكمله بنفسك. والنصوص التي تحمل تواريخ تبقى string لأن JSON لا يعرف نوعًا للتاريخ.
المفاتيح التي لا تصلح أسماءً في TypeScript، مثل المفاتيح العربية أو التي فيها شرطة، تُكتب بين علامتي تنصيص فيبقى التعريف صحيحًا.
أسئلة شائعة
ما الفرق بين interface وtype؟
للكائنات يتشابهان في أغلب الاستخدامات. interface يمكن توسيعه بتعريف ثانٍ بالاسم نفسه، وtype أمرن مع الاتحادات (|) والأنواع المركبة. اتبع ما يستخدمه مشروعك.
هل تتحقق هذه الأنواع من البيانات أثناء التشغيل؟
لا. أنواع TypeScript تُحذف عند الترجمة إلى جافاسكربت. للتحقق من استجابة API أثناء التشغيل استخدم مكتبة تحقق مثل Zod.