LibraTool logoLibraTool

Бесплатен Конвертор JSON во TypeScript

Генерирајте TypeScript интерфејси или типски алијаси од кој било JSON објект или низа. Залепете го вашиот JSON и добијте готови TypeScript типови веднаш.

Работи офлајн откако ќе се вчита
export interface User {
  id: number;
  name: string;
  email: string;
  isActive: boolean;
  score: number;
  tags: string[];
  address?: null;
}

export interface Root {
  user: User;
  createdAt: string;
  version: number;
}

Како функционира

Оваа алатка користи рачно напишан рекурзивен алгоритам за заклучување на тип без надворешни библиотеки — JSON.parse за проверка и парсирање на влезот, потоа прилагодено минување што минува низ секоја вредност во JSON дрвото и произведува TypeScript интерфејс или декларации за тип директно во прелистувачот. Ништо не се испраќа до сервер.

  1. 1
    JSON се парсира и проверува
    Вашиот влез се предава на JSON.parse. Ако не успее, точната грешка при парсирање веднаш се прикажува под влезот. Успешно парсирање произведува типизирано дрво на вредности што ја води остатокот од конверзијата.
  2. 2
    Рекурзивно заклучување на тип
    Рекурзивна функција getType минува низ секој јазол: примитивните типови се пресликуваат на string, number, boolean, или null; објектите активираат нов именуван интерфејс; низи од објекти ги спојуваат своите клучеви низ сите елементи така што клучевите присутни само во некои ставки стануваат опционални, а конфликтни типови вредности се спојуваат со |.
  3. 3
    Именување на интерфејс безбедно од судири
    Секој вгнезден објект добива име во PascalCase изведено од неговиот JSON клуч (snake_case, kebab-case и празни места сите се нормализираат). Ако два структурно различни објекти би го делеле истото име, се додава нумерички суфикс (Data, Data2, …) наместо тивко да се пребрише претходната дефиниција.
  4. 4
    Излезот се прикажува и може да се преземе
    Вгнездените интерфејси се произведуваат прво, потоа коренскиот тип, форматиран како export interface или export type во зависност од вашиот избор. Резултатот може да се копира во клипбордот или да се преземе како .ts датотека — сè изградено со стандарден Blob и без комуникација со сервер.

Поврзани алатки

Најчесто поставувани прашања