JSON إلى واجهات TypeScript
ولّد واجهات TypeScript أو أسماء أنواع مستعارة من عيّنة JSON، مع مفاتيح اختيارية واتحادات null وأنواع متداخلة تُستنتج من المصفوفات. مجاني وخاص.
المفاتيح الغائبة عن بعض عناصر المصفوفة تصبح اختيارية (?)، وقيم null تصبح "| null"، والقيم التي تكون null دائمًا تصبح unknown.
يعمل بالكامل في متصفحك. لا يتم رفع بياناتك أبدًا.
أدوات ذات صلة
عرض الكلما هو JSON إلى TypeScript؟
الصق عيّنة من استجابة API أو ملف إعداد لتحصل على تصريحات TypeScript جاهزة للاستخدام من نوع interface (أو type). تتحول الكائنات المتداخلة إلى أنواع مصدَّرة منفصلة، وتصبح المفاتيح الغائبة من بعض عناصر المصفوفة اختيارية، وتتحول قيم null إلى أنواع اتحادية.
كيفية استخدام JSON إلى TypeScript
- الصق عيّنة JSON في إدخال JSON (أو انقر تحميل مثال / فتح ملف).
- اضبط اسم النوع الجذر (الافتراضي
Root). - اختر نمط الإخراج:
interfaceأو اسم مستعار type. - انسخ شيفرة TypeScript الناتجة أو تنزيل كملف.
مثال
{"id":1,"name":"A","tags":["x"]} export interface Root {
id: number;
name: string;
tags: string[];
} متى تستخدم JSON إلى TypeScript
استخدمه لتحديد أنواع استجابات fetch وبيانات الاختبار وملفات الإعداد بسرعة. لا تكشف عيّنة واحدة كل الحالات: فتبقى تعدادات النصوص واتحادات أشكال الكائنات وسلاسل التواريخ أنواع string عادية أو مدمجة، فراجع الناتج وحسّنه، أو استخدم مولدًا قائمًا على JSON Schema للعقود.
كيف يعمل JSON إلى TypeScript
تُجتاز العيّنة تكراريًا ويجمع كل موضع الأنواع التي رآها. تُدمج مصفوفات الكائنات في نوع واحد: فالمفتاح الغائب من بعض العناصر يصبح اختياريًا، والمفتاح الذي يكون null في موضع ما يصبح قابلًا لـ null، والأعداد الصحيحة المختلطة بكسرية تصبح نوع الفاصلة العائمة، وأي خلط آخر للأنواع يعود إلى نوع ديناميكي. وتصبح الكائنات المتداخلة أنواعًا مسماة (PascalCase للمفتاح مع إفراد مفاتيح المصفوفات: orders ← Order) مع لواحق رقمية عند تعارض الأسماء. ويقابل ناتج TypeScript الأعداد الصحيحة والكسرية بـ number والنصوص بـ string والمنطقية بـ boolean والمصفوفات بـ T[] والقيم القابلة لـ null بـ T | null والديناميكية بـ unknown. وتوضع علامات اقتباس على المفاتيح التي ليست معرّفات صالحة ("first-name": string).
حالات الاستخدام الشائعة
- تحديد أنواع استجابة REST API قبل كتابة العميل
- إنشاء واجهات لملف إعداد JSON
- تحويل بيانات الاختبار إلى كائنات مكتوبة الأنواع
- إنشاء أنواع أولية لحمولة webhook من طرف ثالث
الأسئلة الشائعة
لماذا نُوعت خاصية بـ unknown؟
كانت قيمتها null في كل العيّنات (أو كانت المصفوفات فارغة)، فلم يمكن استنتاج نوع حقيقي. أضف عيّنة بقيمة حقيقية أو عدّل النوع يدويًا.
كيف تُكتشف الخصائص الاختيارية؟
عندما تكون القيمة العليا أو مفتاح متداخل مصفوفة كائنات، يُعلَّم المفتاح الموجود في بعض الكائنات فقط بـ ?.
هل ينتج تحققًا وقت التشغيل؟
لا، يُصدر تصريحات الأنواع فقط، وهي تختفي عند التصريف. استخدم مدققًا مثل JSON Schema إذا احتجت فحوصات وقت التشغيل.