لماذا تحويل JSON إلى TypeScript؟

يستخدم TypeScript الأنواع الثابتة لاكتشاف الأخطاء (bugs) في وقت الترجمة بدلاً من وقت التشغيل. عند العمل مع APIs أو ملفات الإعداد أو أي مصدر بيانات خارجي يُعيد JSON، تحتاج عادةً إلى تعريف أنواع أو interfaces تصف شكل تلك البيانات. كتابة هذه التعريفات يدوياً أمر مُرهق وعرضة للأخطاء، خاصةً في حالة الكائنات المتداخلة بعمق أو المصفوفات الكبيرة ذات الهياكل المتغيرة. أتمتة عملية التحويل توفر الوقت وتقلل من خطر عدم التطابق بين أنواعك والبيانات الفعلية.

وصف الأداة

تأخذ هذه الأداة أي إدخال JSON صالح — كائنات أو مصفوفات أو هياكل متداخلة — وتُنشئ فوراً أنواع TypeScript المقابلة كـ type aliases أو interfaces. تكتشف الأداة تلقائياً الكائنات المتداخلة، وتُنشئ أنواعاً مسماة منفصلة لكل منها، وتتعامل مع المصفوفات عن طريق استنتاج أنواع العناصر. يمكنك التبديل بين وضعَي الإخراج interface وtype بحسب اصطلاحات مشروعك.

أمثلة

إدخال JSON:

{
  "id": 1,
  "name": "Alice",
  "email": "alice@example.com",
  "address": {
    "street": "123 Main St",
    "city": "Springfield",
    "zip": "62701"
  },
  "roles": ["admin", "editor"]
}

الإخراج (وضع Interface):

interface RootObject {
  id: number;
  name: string;
  email: string;
  address: Address;
  roles: string[];
}

interface Address {
  street: string;
  city: string;
  zip: string;
}

الإخراج (وضع Type):

type RootObject = {
  id: number;
  name: string;
  email: string;
  address: Address;
  roles: string[];
};

type Address = {
  street: string;
  city: string;
  zip: string;
};

الميزات

  • الاختيار بين إخراج interface أو type alias عبر قائمة منسدلة واحدة
  • الكشف التلقائي عن أنواع الكائنات المتداخلة واستخراجها
  • استنتاج نوع عناصر المصفوفات، بما في ذلك مصفوفات الكائنات
  • دمج أشكال الكائنات المتغيرة داخل المصفوفات في نوع موحد واحد مع خصائص اختيارية
  • تحويل فوري مع محررَي JSON وTypeScript بتمييز صياغي للألوان

حالات الاستخدام

  • التعريف السريع بأنواع TypeScript لحمولات استجابات API أثناء تطوير الواجهة الأمامية
  • توليد تعريفات الأنواع من ملفات إعداد JSON أو تصديرات قواعد البيانات
  • بناء نماذج بيانات آمنة من حيث الأنواع عند بدء مشروع TypeScript جديد

كيف تعمل الأداة

تُحلل الأداة JSON الصالح وتتجول في هيكله بشكل تكراري. لكل كائن تصادفه، تُنشئ interface مسماة أو type alias مع حقول تطابق مفاتيح الكائن. تُنتج الكائنات المتداخلة أنواعاً إضافية يُشار إليها بالاسم. تُحلَّل المصفوفات لتحديد نوع العنصر — إذا كانت جميع العناصر كائنات، يتم دمج أشكالها في نوع واحد حيث تصبح المفاتيح غير الموجودة في كل عنصر اختيارية.

نصائح

  • الصق عينة تمثيلية من بيانات JSON الخاصة بك. كلما كانت العينة أكثر اكتمالاً، كانت الأنواع المُولَّدة أكثر دقة.
  • بالنسبة للمصفوفات ذات أشكال الكائنات المختلطة، أدرج كائنات متعددة حتى تتمكن الأداة من اكتشاف الحقول الاختيارية.
  • استخدم وضع Type إذا كان مشروعك يُفضل type aliases لأشكال الكائنات، أو وضع Interface إذا كنت تتبع اصطلاح interface.