
ממיר JSON ל-TypeScript קורא ערך JSON לדוגמה - תגובת API, קובץ תצורה, רשומת מסד נתונים - וכותב את ממשקי TypeScript שמתארים אותו אובייקטים מקוננים הופכים לממשקים בעלי שם משלהם, מערכים של אובייקטים מתמזגים לממשק אלמנט בודד ולא לאיחוד רחב ידיים, ומפתחות שהם null או חסרים ברשומות מסוימות מסומנים כאופציונליים. אתה מדביק נתונים שכבר יש לך; אתה מקבל סוגים שאחרת היית כותב ביד.
הקלדת תגובת API ביד היא מייגעת ונוטה לשגיאות בצורה ספציפית: אתה מקליד את מה שאתה *חושב* שנקודת הקצה מחזירה, לא את מה שהוא החזיר בפועל. שדות שמעולם לא שמתם לב אליהם מושמטים, מספר שלם שלפעמים הוא null מוקלד כ'מספר', והטעות צצה בזמן ריצה בהפקה ולא בעורך שלך. יצירת סוגים ישר ממטען אמיתי סוגרת את הפער הזה, מכיוון שהצורה שאתה מקמפל מולה היא הצורה שהשרת שלח בפועל.
הכל פועל בדפדפן שלך מנוע ההסקה הוא TypeScript ללא תלות, לא עטיפה סביב שירות מרוחק, כך שמטענים - הנושאים באופן שגרתי אסימוני גישה, רשומות לקוחות ומזהים פנימיים - לעולם אינם עוזבים את הדף בחר ממשקים או כינוי סוג, החלף את מילת המפתח `export` ו'readonly` modifiers, בחר את רוחב ההזחה שלך, ואז העתק את הפלט או הורד קובץ.ts.
הממשקים שנוצרו מתארים את המדגם שסיפקת, לא את ה-API שאתה קורא לו, וההבחנה הזו היא כל הסיכון שדה שבמקרה קיים בכל אובייקט של המדגם שלך מסומן נדרש גם אם השרת משמיט אותו לפעמים, ושדה שהוא null במדגם לא ניתן להבחין בין אחד שהוא null. מערכים ריקים הם המקרה הברור ביותר: מערך ללא אלמנטים אינו נותן מידע על מה שהוא מכיל מיזוג המערך עוזר כאן על ידי שילוב כל אובייקט ברשימה לממשק אחד וסימון מפתחות שחסרים בחלק מהערכים כאופציונליים, כך מדגם גדול ומגוון יותר מייצר סוג כנה יותר שבו ל-API יש סכימה או מסמך OpenAPI, צור מזה במקום זאת והשתמש בזה לחקר תגובה לא מתועדת.
הכנס תגובת API, קובץ מתקן או כל ערך JSON. טען תחילה את הדוגמה אם ברצונך לראות כיצד מטופלים אובייקטים, מערכים ושדות null מקוננים.
הגדר את שם סוג השורש - בדרך כלל המשאב, כמו משתמש או חשבונית. ממשקים מקוננים נקראים אוטומטית מהמפתח שלהם, כאשר שמות רכיבי המערך מסומנים ביחיד (מהדורות הופכות ל-Release).
בחר ממשק או הקלד כינוי, החליט אם לייצא כל הצהרה, הוסף מתקנים לקריאה בלבד אם בסיס הקוד שלך מעדיף צורות בלתי ניתנות לשינוי, והגדר את ההזנה ל-2 או 4 רווחים.
לחץ על GENERATE. סקור את האופציות והאיגודים המשוערים, ולאחר מכן העתק את הקוד ללוח שלך או הורד אותו כקובץ .TS מוכן לכניסה לתיקיית הסוגים שלך.
כל אובייקט מקונן הופך לממשק בעל שם משלו, לשימוש חוזר במקום צורה אנונימית מוטבעת, כך שתוכל לייבא ולהתייחס לסוגים הפנימיים באופן עצמאי.
מערך של אובייקטים מתמזג לממשק אלמנט אחד. מפתחות הקיימים ברשומות מסוימות אך לא באחרים הופכים לאופציונליים, וזה בדיוק האופן שבו מתנהגים נתוני API מעוכבים אמיתיים.
בחר אם ערך null פירושו שהמפתח הוא אופציונלי או אם null שייך לאיחוד. שתי המוסכמות נפוצות; הכלי אינו כופה אחד על בסיס הקוד שלך.
שלח `userface user {}` או `type user = {}` כדי להתאים לכללי ה-LINT הקיימים שלך, עם מתאמי `ייצוא` ו-`readonly` אופציונליים המוחלים באופן עקבי על פני כל הצהרה.
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.
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.
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. 100% in your browser.
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.
0 comments
No comments yet. Be the first to share your thoughts!