devtool.co.il כלים לפיתוח — בעברית
מחוללים JSON to TypeScript

JSON ל-TypeScript

יצירת ממשקי TypeScript ו-JSON Schema מדוגמת JSON

למה זה שימושי?

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

מה אפשר לייצר?

TypeScript Interface

interface עם כל השדות, טיפוסים נכונים, ואובייקטים מקוננים כ-interfaces נוספים. מוכן להדבקה בפרויקט.

JSON Schema

מסמך JSON Schema (draft 2020-12) שאפשר להשתמש בו עם ספריות validation כמו Ajv, Zod (עם המרה), או TypeBox. שימושי ל-API validation, form validation, ו-OpenAPI specs.

מגבלות שחשוב להבין

הכלי מסיק טיפוסים מדוגמה אחת של JSON. זה אומר:

  • אין מידע על שדות אופציונליים — אם בדוגמה אין שדה, הכלי לא יודע שהוא יכול להופיע. סמן "שדות אופציונליים" אם לא בטוח.
  • מערכים ריקים → any[] — אם tags: [], לא ניתן לדעת טיפוס האלמנטים.
  • null → any — null לא נותן מידע על הטיפוס האמיתי.
  • Union types לא מזוהים — אם שדה יכול להיות מחרוזת או מספר במצבים שונים, הכלי רואה רק את מה שבדוגמה.

לשיפור התוצאה: ספק JSON מלא (כל השדות האפשריים), הימנע מ-null, ועם מערכים — ודא שיש לפחות אלמנט אחד מייצג.

TypeScript לעומת Zod

TypeScript interface נותן type-checking בזמן קומפיילציה. אבל API חיצוני יכול להחזיר דברים שלא תואמים ל-interface והקוד ירוץ עם ציפיות שגויות. Zod (או TypeBox, io-ts) מספקים validation ב-runtime — הם בודקים בזמן אמת שהנתונים תואמים לסכמה. הכלי הזה מייצר את ה-interface; אם צריך validation ב-runtime, משתמשים ב-JSON Schema שהוא מייצר עם Ajv, או ממירים ידנית ל-Zod.

כלים קשורים