Hopp til hovedinnhold
LibraTool logoLibraTool

Gratis JSON til TypeScript-konverterer

Generer TypeScript-grensesnitt eller typealias fra et JSON-objekt eller -array. Lim inn JSON og få bruksklare TypeScript-typer øyeblikkelig.

Fungerer uten nett når den er lastet
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;
}

Vanlige bruksområder

  • Generer TypeScript-typer fra API-svarLim inn et API JSON-svar og generer øyeblikkelig TypeScript-grensesnitt for å typesikre frontend-koden din.
  • TypeScript-typer for konfig- og innstillingsobjekterGenerer TypeScript-grensesnitt fra JSON-konfigfiler for å legge til typesikkerhet i applikasjonsinnstslingene dine.
  • Generer TypeScript-typer fra databaseposterKonverter JSON-eksporterte databaseposter eller ORM-forespørselsresultater til TypeScript-grensesnitt for datatypisering.
  • Typemockdata og testfiksturGenerer TypeScript-grensesnitt fra JSON-mockdata og testfikturer for å skrive enhetstester og Storybook-historier.
  • Skriv tredjepartsAPI-svarGenerer TypeScript-grensesnitt fra tredjepartsAPI-svar hvor offisielle typer mangler eller er foreldet.

Hvordan det fungerer

Verktøyet bruker en håndskrevet rekursiv typeinferensalgoritme uten eksterne biblioteker — JSON.parse for å validere og tolke inndataene, deretter en egen gjennomgang som går gjennom hver verdi i JSON-treet og lager TypeScript-deklarasjoner med interface eller type direkte i nettleseren. Ingenting sendes til en server.

  1. 1
    JSON tolkes og valideres
    Inndataene sendes til JSON.parse. Hvis det feiler, vises den nøyaktige tolkefeilen umiddelbart under inndatafeltet. En vellykket tolking gir et typet verditre som driver resten av konverteringen.
  2. 2
    Rekursiv typeinferens
    En rekursiv getType-funksjon går gjennom hver node: primitiver blir string, number, boolean eller null; objekter gir et nytt navngitt interface; for matriser med objekter slås nøklene sammen på tvers av alle elementer, så nøkler som bare finnes i noen elementer blir valgfrie, og motstridende verdityper slås sammen med |.
  3. 3
    Kollisjonssikker navngiving av interface
    Hvert nestet objekt får et PascalCase-navn utledet fra JSON-nøkkelen (snake_case, kebab-case og mellomrom normaliseres). Hvis to strukturelt ulike objekter ville fått samme navn, legges et tallsuffiks til (Data, Data2, …) i stedet for å stille overskrive den tidligere definisjonen.
  4. 4
    Resultatet vises og kan lastes ned
    Nestede interface skrives først, deretter rottypen, formatert som export interface eller export type etter ditt valg. Resultatet kan kopieres til utklippstavlen eller lastes ned som .ts-fil — alt bygget med en vanlig Blob uten tur til serveren.

Relaterte verktøy

Ofte stilte spørsmål