انتقل إلى المحتوى

JSON إلى TypeScript

الصق عينة JSON واحصل على تعريفات TypeScript جاهزة للاستخدام تصف بنيتها.

تتم المعالجة محليًا في متصفحك

الخيارات
0 حرف · 0 سطر
ستظهر النتيجة هنا.

ما هي أداة JSON إلى TypeScript؟

عند استهلاك واجهة JSON في TypeScript تحتاج إلى أنواع للاستجابات. وكتابتها يدويًا لحمولات كبيرة بطيئة وعرضة للأخطاء، لذا يوفّر مولّد يستنتجها من عينة حقيقية وقتًا.

تمشي هذه الأداة على JSON وتنشئ واجهة مسمّاة (أو اسمًا مستعارًا لنوع) لكل كائن متداخل، وتدمج الكائنات الموجودة في مصفوفة بحيث تصبح المفاتيح الغائبة عن بعض العناصر اختيارية (?)، وتبني اتحادات عندما يحمل حقل أنواعًا مختلفة. يمكنك اختيار اسم الجذر ونمط interface أو type وكلمة export وخصائص القراءة فقط.

كيف تعمل؟

  1. الصق عينة JSON ممثِّلة ويفضل أن تحوي عدة عناصر في المصفوفة لتُكتشف الحقول الاختيارية.
  2. حدّد اسم النوع الجذري واختر interface أو type وخيارات export وreadonly.
  3. راجع التعريفات المولَّدة في الناتج.
  4. انسخها إلى مشروعك أو نزّل types.ts.

حالات الاستخدام الشائعة

  • تعريف أنواع استجابة نقطة REST قبل كتابة شيفرة العميل.
  • نمذجة ملف إعداد أو حمولة webhook.
  • الحصول على مسودة أولى للأنواع لواجهة قديمة بلا توثيق.
  • معرفة الحقول التي تغيب أو تكون null أحيانًا في استجابة.

أمثلة

جرّب هذا المدخل في الأداة أعلاه:

المدخل
{"id":1,"name":"Ada","email":null,"tags":["math","code"],"profile":{"age":36,"admin":false},"orders":[{"sku":"A1","qty":2,"note":"gift"},{"sku":"B2","qty":1}]}
المخرج
export interface Root {
  id: number;
  name: string;
  email: null;
  tags: string[];
  profile: Profile;
  orders: Order[];
}

export interface Profile {
  age: number;
  admin: boolean;
}

export interface Order {
  sku: string;
  qty: number;
  note?: string;
}

الخصوصية

تعمل أداة JSON إلى TypeScript بالكامل داخل متصفحك. يُعالَج النص أو الملفات التي تقدّمها على جهازك ولا تُرفع ولا تُسجَّل ولا تُخزَّن على خوادمنا.

القيود

تُستنتج الأنواع من عينة واحدة فقط: قد يكون حقل موجود دائمًا في عينتك اختياريًا في الواقع، وتصل التواريخ كنص string. راجعها قبل الاعتماد.

الأسئلة الشائعة

كيف تُكتشف الخصائص الاختيارية؟

عند دمج عدة كائنات (مثل عناصر مصفوفة واحدة) يُعلَّم المفتاح الغائب عن واحد منها على الأقل كاختياري بعلامة استفهام. أما المفتاح الموجود بقيمة null فيحتفظ باتحاد مع null.

كيف تُسمّى الكائنات المتداخلة؟

يحصل كل كائن متداخل على واجهة تحمل اسم مفتاحه بنمط PascalCase (تصبح orders باسم Order لعناصر المصفوفة). وتعيد الكائنات المتطابقة البنية استخدام التعريف نفسه ويُضاف لاحقة رقمية عند تعارض الأسماء.

هل تُعالَج الأعداد الكبيرة والتواريخ؟

تصبح كل أرقام JSON من النوع number والتواريخ string لأن JSON بلا نوع تاريخ. عدّل هذه الأنواع يدويًا إذا كانت شيفرتك تحوّلها إلى Date أو bigint.

المزيد من الأدوات في JSON والبيانات →