ما هو محول JSON إلى TypeScript؟
يقرأ محول JSON إلى TypeScript نموذجًا لقيمة JSON - استجابة API، وملف تكوين، وسجل قاعدة بيانات - ويكتب واجهات TypeScript التي تصفها. تصبح الكائنات المتداخلة واجهات مسماة خاصة بها، ويتم دمج صفائف الكائنات في واجهة عنصر واحد بدلاً من اتحاد مترامي الأطراف، ويتم وضع علامة اختيارية على المفاتيح الفارغة أو المفقودة من بعض السجلات. أنت تلصق البيانات التي لديك بالفعل؛ تحصل على أنواع كنت ستكتبها يدويًا.
تعد كتابة استجابة API يدويًا أمرًا مملاً وعرضة للخطأ بطريقة محددة: تكتب ما تعتقده * ترجع نقطة النهاية، وليس ما ترجعه. يتم حذف الحقول التي لم تلاحظها مطلقًا، ويتم كتابة عدد صحيح يكون أحيانًا فارغًا كـ `number`، ويظهر الخطأ في وقت التشغيل في الإنتاج وليس في المحرر الخاص بك. يؤدي إنشاء الأنواع مباشرة من حمولة حقيقية إلى سد هذه الفجوة، لأن الشكل الذي تقوم بتجميعه مقابله هو الشكل الذي أرسله الخادم.
كل شيء يعمل في متصفحك. محرك الاستدلال هو TypeScript خالي من التبعية، وليس غلافًا حول خدمة عن بعد، لذا فإن الحمولات - التي تحمل بشكل روتيني رموز الوصول وسجلات العملاء والمعرفات الداخلية - لا تترك الصفحة أبدًا. اختر واجهات أو اكتب أسماء مستعارة، وقم بتبديل الكلمة الأساسية `export` وتعديل `readonly`، واختر عرض المسافة البادئة، ثم انسخ الإخراج أو قم بتنزيل ملف.ts.
هناك طريقة سريعة لمعرفة ما يمنحك إياه تحويل JSON إلى TypeScript وهي العينة المضمنة. اضغط على تحميل العينة، ثم قم بإنشاء. تحصل على ثلاث واجهات JSON إلى TypeScript: `Root` و`Owner` و`Release`. الإصدار الثاني لا يحتوي على مفتاح `notes`، لذا فإن واجهة `Release` fringnotes؟: string`، و ` `retiredAt` is null in the onest، لذا يصبح ` `At؟: null`. هذه هي النتيجة الصادقة، لأن قيمة فارغة واحدة لا تقدم أي دليل على النوع الحقيقي. لتحويل JSON إلى TypeScript للحصول على نقطة نهاية حقيقية، قم بلصق العديد من السجلات بحيث يكون للاستدلال المزيد للمقارنة.
تصف الواجهات التي تم إنشاؤها العينة التي قدمتها، وليس واجهة برمجة التطبيقات التي تستدعيها، وهذا التمييز هو الخطر بأكمله. يتم وضع علامة على الحقل الذي يحدث في كل كائن من عينتك بأنه مطلوب حتى لو أغفله الخادم في بعض الأحيان، ولا يمكن تمييز الحقل الفارغ في العينة عن الحقل الذي يكون فارغًا دائمًا. المصفوفات الفارغة هي الحالة الأوضح: المصفوفة التي لا تحتوي على عناصر لا تعطي أي معلومات حول ما تحتوي عليه. يساعد دمج المصفوفة هنا من خلال دمج كل كائن في القائمة في واجهة واحدة ووضع علامات على المفاتيح المفقودة من بعض الإدخالات باعتبارها اختيارية، وبالتالي فإن العينة الأكبر والأكثر تنوعًا تنتج نوعًا أكثر صدقًا. عندما تحتوي واجهة برمجة التطبيقات على مخطط أو مستند OpenAPI، قم بالإنشاء من ذلك بدلاً من ذلك واستخدمه لاستكشاف استجابة غير موثقة.
كيفية استخدام JSON إلى TypeScript Converter؟
الصق JSON الخاص بك
قم بإسقاط استجابة API أو ملف تركيبات أو أي قيمة JSON. قم بتحميل العينة أولاً إذا كنت تريد أن ترى كيف يتم التعامل مع الكائنات المتداخلة والمصفوفات والحقول الفارغة.
اسم نوع الجذر
قم بتعيين اسم نوع الجذر - عادةً المورد، مثل المستخدم أو الفاتورة. تتم تسمية الواجهات المتداخلة تلقائيًا من مفتاحها، مع تفرد أسماء عناصر المصفوفة (تصبح الإصدارات إصدارًا).
اختر نمط الإخراج الخاص بك
اختر واجهة أو اكتب الاسم المستعار ، وقرر ما إذا كنت تريد تصدير كل إعلان ، وإضافة معدِّلات للقراءة فقط إذا كانت قاعدة الشفرة الخاصة بك تفضل الأشكال غير القابلة للتغيير ، واضبط المسافة البادئة على 2 أو 4 مسافات.
توليد ثم نسخ أو تنزيل
اضغط على توليد. راجع الخيارات والنقابات المستنتجة ، ثم انسخ الكود إلى الحافظة أو قم بتنزيله كملف .ts جاهز للإسقاط في مجلد الأنواع الخاص بك.
الميزات الرئيسية
استخراج واجهة متداخلة
يصبح كل كائن متداخل واجهة خاصة به قابلة لإعادة الاستخدام بدلاً من شكل مضمن مضمن ، بحيث يمكنك استيراد الأنواع الداخلية والرجوع إليها بشكل مستقل.
دمج مصفوفة ذكية
يتم دمج مجموعة من الكائنات في واجهة عنصر واحد. تصبح المفاتيح الموجودة في بعض السجلات ولكن ليس البعض الآخر اختيارية ، وهذا هو بالضبط كيف تتصرف بيانات واجهة برمجة التطبيقات المرقمة الحقيقية.
التعامل الفارغ الذي تتحكم فيه
اختر ما إذا كانت القيمة الفارغة تعني أن المفتاح اختياري أو ما إذا كانت Null تنتمي إلى الاتحاد. كلا الاتفاقيتين شائعتان؛ لا تفرض الأداة أحدهما على قاعدة الشفرة.
واجهات أو كتابة أسماء مستعارة
قم بإصدار `` واجهة مستخدم الواجهة {}` أو 'type user = {}` لمطابقة قواعد Lint الحالية ، مع تعديلات "تصدير" و "readonly" بشكل ثابت عبر كل إعلان.
Frequently Asked Questions
Related Tools
JSON Flattener
Flatten nested JSON into single-level dot-notation keys, or unflatten dotted keys back into nested objects and arrays. Lossless round trip. 100% client-side.
JSON Schema Generator
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
JSON to Go Struct
Convert JSON into Go struct definitions with json tags. Nested objects become inline structs, arrays of objects are merged, and field names follow Go conventions. Runs client-side.
JSONPath Tester
Test JSONPath expressions against any JSON and see the matched values and their paths instantly. Supports wildcards, recursive descent, slices, and filters. 100% client-side.
Comments
0 comments
No comments yet. Be the first to share your thoughts!