Command Palette

Search for a command to run...

JS

json ל-Typescript

צור ממשקי TypeScript מכל מדגם JSON. מסיק סוגים מקוננים, ממזג מערכים של אובייקטים לממשק בודד, מסמן מפתחות ניתנים לביטול וחסר אופציונלי, ופולט קוד שניתן לייצוא נקי. 100% צד הלקוח.

מהו ממיר ה-JSON ל-TypeScript?

ממיר JSON ל-TypeScript קורא ערך JSON לדוגמה - תגובת API, קובץ תצורה, רשומת מסד נתונים - וכותב את ממשקי TypeScript שמתארים אותו אובייקטים מקוננים הופכים לממשקים בעלי שם משלהם, מערכים של אובייקטים מתמזגים לממשק אלמנט בודד ולא לאיחוד רחב ידיים, ומפתחות שהם null או חסרים ברשומות מסוימות מסומנים כאופציונליים. אתה מדביק נתונים שכבר יש לך; אתה מקבל סוגים שאחרת היית כותב ביד.

הקלדת תגובת API ביד היא מייגעת ונוטה לשגיאות באופן ספציפי: אתה מקליד את מה שאתה *חושב* שנקודת הקצה מחזירה, לא את מה שהיא החזירה שדות שמעולם לא שמת לב אליהם מושמטים, מספר שלם שלפעמים null מוקלד כ-`number`, והטעות צצה בזמן ריצה בייצור ולא בעורך שלך יצירת סוגים היישר ממטען אמיתי סוגרת את הפער הזה, כי הצורה שאתה מקמפל נגדה היא הצורה שהשרת שלח.

הכל פועל בדפדפן שלך מנוע ההסקה הוא TypeScript ללא תלות, לא עטיפה סביב שירות מרוחק, כך שמטענים - הנושאים באופן שגרתי אסימוני גישה, רשומות לקוחות ומזהים פנימיים - לעולם אינם עוזבים את הדף בחר ממשקים או כינוי סוג, החלף את מילת המפתח `export` ו'readonly` modifiers, בחר את רוחב ההזחה שלך, ואז העתק את הפלט או הורד קובץ.ts.

דרך מהירה לראות מה JSON to TypeScript המרה נותן לך הוא המדגם המובנה לחץ על Load Sample, ואז צור אתה מקבל שלושה ממשקי JSON ל-TypeScript: `שורש`, `בעלים` ו`שחרור`. למהדורה השנייה אין מפתח `הערות', אז ממשק `שחרור` הממוזג קורא `הערות?: מחרוזת`, ו'פרש אט' בטל ברשומה היחידה, אז הוא הופך להיות `פרש אט?: null`. זו התוצאה הכנה, כי אחד null לא נותן עדות לסוג האמיתי כדי להמיר JSON ל-TypeScript עבור נקודת קצה אמיתית, הדבק מספר רשומות כך שלהסקת ההסקה יש יותר מה להשוות.

הממשקים שנוצרו מתארים את המדגם שסיפקת, לא את ה-API שאתה קורא לו, וההבחנה הזו היא כל הסיכון שדה שבמקרה קיים בכל אובייקט של המדגם שלך מסומן נדרש גם אם השרת משמיט אותו לפעמים, ושדה שהוא null במדגם לא ניתן להבחין בין אחד שהוא null. מערכים ריקים הם המקרה הברור ביותר: מערך ללא אלמנטים אינו נותן מידע על מה שהוא מכיל מיזוג המערך עוזר כאן על ידי שילוב כל אובייקט ברשימה לממשק אחד וסימון מפתחות שחסרים בחלק מהערכים כאופציונליים, כך מדגם גדול ומגוון יותר מייצר סוג כנה יותר שבו ל-API יש סכימה או מסמך OpenAPI, צור מזה במקום זאת והשתמש בזה לחקר תגובה לא מתועדת.

כיצד להשתמש בממיר JSON ל-TypeScript?

  1. הדבק את ה-JSON שלך

    הכנס תגובת API, קובץ מתקן או כל ערך JSON. טען תחילה את הדוגמה אם ברצונך לראות כיצד מטופלים אובייקטים, מערכים ושדות null מקוננים.

  2. תן שם לסוג השורש

    הגדר את שם סוג השורש - בדרך כלל המשאב, כמו משתמש או חשבונית. ממשקים מקוננים נקראים אוטומטית מהמפתח שלהם, כאשר שמות רכיבי המערך מסומנים ביחיד (מהדורות הופכות ל-Release).

  3. בחר את סגנון הפלט שלך

    בחר ממשק או הקלד כינוי, החליט אם לייצא כל הצהרה, הוסף מתקנים לקריאה בלבד אם בסיס הקוד שלך מעדיף צורות בלתי ניתנות לשינוי, והגדר את ההזנה ל-2 או 4 רווחים.

  4. ליצור, ולאחר מכן להעתיק או להוריד

    לחץ על GENERATE. סקור את האופציות והאיגודים המשוערים, ולאחר מכן העתק את הקוד ללוח שלך או הורד אותו כקובץ .TS מוכן לכניסה לתיקיית הסוגים שלך.

תכונות מפתח

  • חילוץ ממשק מקונן

    כל אובייקט מקונן הופך לממשק בעל שם משלו, לשימוש חוזר במקום צורה אנונימית מוטבעת, כך שתוכל לייבא ולהתייחס לסוגים הפנימיים באופן עצמאי.

  • מיזוג מערך חכם

    מערך של אובייקטים מתמזג לממשק אלמנט אחד. מפתחות הקיימים ברשומות מסוימות אך לא באחרים הופכים לאופציונליים, וזה בדיוק האופן שבו מתנהגים נתוני API מעוכבים אמיתיים.

  • טיפול בביטול אתה שולט

    בחר אם ערך null פירושו שהמפתח הוא אופציונלי או אם null שייך לאיחוד. שתי המוסכמות נפוצות; הכלי אינו כופה אחד על בסיס הקוד שלך.

  • ממשקים או כינויים מסוג

    שלח `userface user {}` או `type user = {}` כדי להתאים לכללי ה-LINT הקיימים שלך, עם מתאמי `ייצוא` ו-`readonly` אופציונליים המוחלים באופן עקבי על פני כל הצהרה.

Frequently Asked Questions

הדבק את ה-JSON שלך בעורך, הגדר את שם סוג השורש והקש Generate. הכלי מסיק את הסוג של כל מקש, מחלץ אובייקטים מקוננים לממשקים שלהם ומוציא קוד שתוכל להעתיק ישירות לקובץ.ts. אין הרשמה ואין העלאה - הסקת מסקנות פועלת בדפדפן שלך.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!

json to typescriptjson to typescript interfaceconvert json to typescriptjson to interface generatortypescript type generatorjson to typegenerate typescript from jsonapi response typestypescript interface from apijson schema to typescript