JSON sang TypeScript
Sinh interface từ một response thật — trường nào chỉ có ở vài bản ghi sẽ được đánh dấu tùy chọn.
Chạy hoàn toàn trong trình duyệt của bạn
Đang tải công cụ...
Cách sử dụng
- Dán một response thật — càng nhiều bản ghi thì kiểu sinh ra càng đúng.
- Đặt tên interface gốc theo endpoint mà dữ liệu đến từ đó.
- Sao chép kết quả vào dự án rồi chỉnh những gì mẫu dữ liệu không thể biết.
- Hãy xem kiểu được sinh ra là điểm khởi đầu, không phải một hợp đồng.
Tính năng
- Gộp mọi phần tử của mảng, nên trường thiếu ở vài bản ghi sẽ là tùy chọn.
- Object lồng nhau được tách thành interface riêng, đặt tên số ít theo tên trường.
- Khóa không hợp lệ làm định danh thì được bọc nháy chứ không bị đổi tên.
- Chọn interface hay type, kèm tùy chọn thuộc tính readonly.
- Chạy hoàn toàn trong trình duyệt — không response nào được tải lên.
Câu hỏi thường gặp
- Vì sao phải đọc cả mảng thay vì phần tử đầu?
- Vì phần tử đầu không phải hình dạng của dữ liệu, nó chỉ là một mẫu. Nếu bản ghi một có `note` còn bản ghi hai thì không, kiểu suy ra từ bản ghi đầu vẫn biên dịch được rồi vỡ lúc chạy ở bản ghi thứ hai. Gộp mọi phần tử và đánh dấu phần khác biệt là tùy chọn mới là cách đọc sống sót được với phần còn lại của response.
- Vì sao một trường bị gán kiểu `null` chứ không phải `string | null`?
- Vì trong mẫu nó chỉ từng là null. Dữ liệu không nói gì về việc khi khác null thì nó là gì, và đoán `string` là bịa thêm thông tin. Hãy dán một response mà trường đó có giá trị, hoặc tự mở rộng kiểu — công cụ báo đúng thứ nó thấy, không phải thứ nó mong.
- Có nên commit những kiểu này không?
- Như một điểm khởi đầu. Một mẫu dữ liệu không thể cho biết id là kiểu định danh riêng, status chỉ nhận một trong bốn chuỗi, hay một trường là tùy chọn chứ không phải hôm đó tình cờ vắng mặt. Ở đâu API có công bố schema — OpenAPI, GraphQL — hãy sinh từ đó; công cụ này dành cho trường hợp không có.
Công cụ liên quan
Định dạng và làm đẹp JSON ngay lập tức.
Tìm lỗi cú pháp JSON và biết chính xác lỗi nằm ở đâu.
Chuyển CSV hoặc TSV sang JSON, xử lý đúng các trường có dấu ngoặc kép như bảng tính xuất ra.