JSON เป็น TypeScript
JSON เป็น TypeScript: แปลงตัวอย่าง JSON เป็น TypeScript interface และ type alias โดยรวมฟิลด์จาก array ของ object อัตโนมัติ อนุมานฟิลด์แบบ optional และ union กับ null และสร้าง type declaration ที่เหมาะสมสำหรับ array และ object ว่าง เหมาะสำหรับการทำโมเดล response ของ API การตั้งต้น type ฝั่ง frontend และการจัดระเบียบโครงสร้างข้อมูล ทุกขั้นตอนทำงานอยู่ในเบราว์เซอร์ของคุณ
JSON
อักขระ
0 / 500,000
TypeScript
เริ่มต้นอย่างรวดเร็ว
สถานการณ์การใช้งานทั่วไป
แปลง response ของ API จริงให้เป็นโมเดล TypeScript ตั้งต้นสำหรับหน้า frontend, SDK client หรือ integration test จากนั้นสามารถคัดลอก ดาวน์โหลด หรือส่งออกผลลัพธ์ได้ทันที
ตรวจสอบ array ของ object ที่มีหลายรูปแบบเพื่อดูฟิลด์แบบ optional และ union type ก่อนสรุปสัญญา API จากนั้นสามารถคัดลอก ดาวน์โหลด หรือส่งออกผลลัพธ์ได้ทันที
แปลงข้อมูล JSON จำลองให้เป็น type definitions แบบเร็วสำหรับ fixture, Storybook หรือ prototype
ตรวจสอบประกาศแบบซ้อนอย่าง User หรือ Meta เมื่อรูปแบบ payload ฝั่ง backend เปลี่ยนไป จากนั้นสามารถคัดลอก ดาวน์โหลด หรือส่งออกผลลัพธ์ได้ทันที
คำแนะนำการใช้งาน
ข้อจำกัดและความเข้ากันได้
ความเป็นส่วนตัวและความปลอดภัย
คำถามที่พบบ่อย
root ที่เป็น object จะสร้าง interface ส่วน root ที่เป็น array หรือ primitive จะสร้าง type alias ถ้าเป็น array ของ object ระดับบนสุด root จะยังคงเป็น type alias เช่น type Root = RootItem[]; และประกาศโครงสร้างของ item แยกต่างหาก
เมื่อไม่มี item หรือ property ให้ดู generator จะไม่สามารถ infer โครงสร้างที่แคบกว่านี้ได้ จึงคง array ว่างเป็น unknown[] และ object ว่างเป็น interface ที่ขยายจาก Record<string, unknown> จนกว่าคุณจะวางข้อมูลที่เป็นตัวแทนมากขึ้น
หากชื่อที่คุณกรอกเป็น TypeScript identifier ที่ถูกต้องอยู่แล้ว ระบบจะเก็บไว้ตามเดิม เช่น APIResponse ชื่อที่ไม่ถูกต้องจะถูก normalize เป็น PascalCase identifier ที่คงที่ก่อนสร้าง
generator ปัจจุบันจะ normalize ชื่อแบบซ้อนจากเส้นทางของ property และแก้ชื่อชนกันอย่างเป็น deterministic ดังนั้นเอาต์พุตใหม่จึงใช้ชื่ออย่าง User, Meta หรือ FooBarClass แทนการเติม prefix จากชื่อ root เสมอ
สัญญาของเอาต์พุตปัจจุบันตั้งใจคืนค่าเป็นประกาศแบบธรรมดาที่ไม่มี export เพื่อให้ผลลัพธ์เป็นกลาง คุณจึงสามารถเพิ่ม export เองตามสไตล์ของโปรเจกต์ได้