Chuyển JSON sang interface TypeScript

Tạo interface hoặc type alias TypeScript từ mẫu JSON, có khóa tùy chọn, kiểu union với null và kiểu lồng nhau suy ra từ mảng. Miễn phí và riêng tư.

Khóa thiếu ở một số phần tử mảng trở thành tùy chọn (?), giá trị null thành "| null", giá trị luôn là null thành unknown.

Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.

Công cụ Liên quan

Xem Tất cả

JSON sang TypeScript là gì?

Dán một phản hồi API hoặc mẫu cấu hình để nhận các khai báo interface (hoặc type) TypeScript dùng được ngay. Đối tượng lồng nhau trở thành các kiểu được export riêng, khóa thiếu ở một số phần tử mảng trở thành tùy chọn và giá trị null trở thành kiểu union.

Cách sử dụng JSON sang TypeScript

  1. Dán mẫu JSON vào ô JSON đầu vào (hoặc nhấn Tải ví dụ / Mở tệp).
  2. Đặt Tên kiểu gốc (mặc định là Root).
  3. Chọn Kiểu đầu ra: interface hoặc bí danh type.
  4. Sao chép mã TypeScript được tạo ra hoặc nhấn Tải xuống để lưu thành tệp.

Ví dụ

Đầu vào
{"id":1,"name":"A","tags":["x"]}
Đầu ra
export interface Root {
  id: number;
  name: string;
  tags: string[];
}

Khi nào nên dùng JSON sang TypeScript

Dùng để nhanh chóng khai báo kiểu cho phản hồi fetch, fixture hoặc tệp cấu hình. Một mẫu duy nhất không thể cho thấy mọi trường hợp: enum dạng chuỗi, union của nhiều dạng đối tượng hay chuỗi ngày tháng vẫn chỉ là string/kiểu đã gộp, vì vậy hãy xem lại và tinh chỉnh kết quả, hoặc dùng công cụ sinh mã dựa trên JSON Schema cho các hợp đồng API.

JSON sang TypeScript hoạt động như thế nào

Mẫu JSON được duyệt đệ quy và mỗi vị trí ghi nhận các kiểu dữ liệu đã gặp. Mảng đối tượng được gộp thành một kiểu: khóa thiếu ở một số phần tử trở thành tùy chọn, khóa có giá trị null ở đâu đó trở thành nullable, số nguyên trộn với số thập phân trở thành kiểu số thực, và mọi trường hợp trộn kiểu khác sẽ dùng kiểu động. Đối tượng lồng nhau trở thành kiểu có tên riêng (tên khóa viết PascalCase, khóa mảng được chuyển về số ít: orders → Order), kèm hậu tố số khi trùng tên. Đầu ra TypeScript ánh xạ số nguyên và số thập phân thành number, chuỗi thành string, boolean thành boolean, mảng thành T[], giá trị nullable thành T | null và giá trị động thành unknown. Khóa không phải định danh hợp lệ được đặt trong dấu nháy ("first-name": string).

Các Trường Hợp Sử Dụng Phổ Biến

  • Khai báo kiểu cho phản hồi REST API trước khi viết client
  • Tạo interface cho tệp cấu hình JSON
  • Chuyển fixture kiểm thử thành đối tượng có kiểu
  • Tạo nhanh kiểu cho payload webhook của bên thứ ba

Câu Hỏi Thường Gặp

Vì sao một thuộc tính có kiểu unknown?

Giá trị của nó là null ở mọi mẫu (hoặc mảng rỗng), nên không suy ra được kiểu thực. Hãy thêm mẫu có giá trị thực hoặc sửa kiểu bằng tay.

Thuộc tính tùy chọn được phát hiện thế nào?

Khi giá trị cấp cao nhất hoặc một khóa lồng nhau là mảng đối tượng, khóa chỉ xuất hiện ở một số đối tượng sẽ được đánh dấu ?.

Công cụ có tạo mã kiểm tra dữ liệu lúc chạy không?

Không, công cụ chỉ sinh khai báo kiểu, vốn biến mất khi biên dịch. Hãy dùng trình kiểm tra như JSON Schema nếu bạn cần kiểm tra lúc chạy.

Bước tiếp theo nên làm

Khám phá thêm danh mục