تحويل JSON إلى JSDoc typedef

ضع الناتج أعلى ملف JavaScript ثم استخدم /** @type {Root} */ لتحصل على الإكمال التلقائي والتحقق في المحرر.

جارٍ تحميل الأداة…

المعالجة والخصوصية: تُحسب النتيجة داخل متصفحك ولا تُرسل بياناتك إلى أي خادم.

طريقة الاستخدام

  1. أدخل نص JSON واسم النوع الرئيسي.
  2. تظهر النتيجة فورًا وتتحدّث مع كل تعديل.
  3. انسخ النتيجة، أو انسخ رابطًا يحفظ القيم نفسها لمشاركتها.

طريقة الحساب

string وnumber وboolean وT[] و*، و@typedef لكل كائن مع @property لكل مفتاح. المفتاح الاختياري يكتب [name] وnull يضيف |null. إذا احتوى الكائن مفتاحا غير صالح كمعرف يكتب النوع كله بصيغة الكائن بين قوسين مزدوجين {{ }} التي يفهمها TypeScript.

مثال

المدخلات: اسم النوع الرئيسي = Root. النتيجة: الكود الناتج: /** * @typedef {Object} Order * @property {string} order_id * @property {number} total * @property {string|null} coupon */ /** * @typedef {Object} Address * @property {string} city * @property {string} postal_code */ /** * @typedef {Object} Root * @property {number} id * @property {string} name * @property {string} email * @property {boolean} is_active * @property {number} balance * @property {string[]} tags * @property {Address} address * @property {Order[]} orders */، عدد الأنواع: 3، عدد الحقول: 13.

{
  "id": 1024,
  "name": "Sara Ahmed",
  "email": "sara@example.com",
  "is_active": true,
  "balance": 1520.75,
  "tags": ["vip", "riyadh"],
  "address": { "city": "Riyadh", "postal_code": "12211" },
  "orders": [
    { "order_id": "A-1", "total": 99.5, "coupon": "EID10" },
    { "order_id": "A-2", "total": 120, "coupon": null }
  ]
}
/**
 * @typedef {Object} Order
 * @property {string} order_id
 * @property {number} total
 * @property {string|null} coupon
 */

/**
 * @typedef {Object} Address
 * @property {string} city
 * @property {string} postal_code
 */

/**
 * @typedef {Object} Root
 * @property {number} id
 * @property {string} name
 * @property {string} email
 * @property {boolean} is_active
 * @property {number} balance
 * @property {string[]} tags
 * @property {Address} address
 * @property {Order[]} orders
 */

الحدود والملاحظات

  • التعريفات للمحرر وفحص checkJs فقط، ولا تتحقق من البيانات وقت التشغيل.

أسئلة شائعة عن هذه الأداة

كيف أستفيد من typedef في VS Code؟

اكتب /** @type {Root} */ قبل المتغير أو @param {Root} في دالة، فيظهر الإكمال التلقائي للحقول.

ماذا تعني [qty] في @property؟

الأقواس المربعة تعني أن المفتاح اختياري، لأنه غاب في بعض عناصر المصفوفة.

هل ترسل بياناتي إلى خادم؟

لا، التحويل يعمل داخل متصفحك ولا يغادر نص JSON جهازك.