Hoppa till huvudinnehåll
LibraTool logoLibraTool

Gratis JSON till TypeScript-konverterare

Generera TypeScript-gränssnitt eller typalias från valfritt JSON-objekt eller array. Klistra in din JSON och få färdiga TypeScript-typer direkt.

Fungerar offline när den väl lästs in
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;
}

Vanliga användningar

  • Generera TypeScript-typer från API-svarKlistra in ett API JSON-svar och generera omedelbar TypeScript-gränssnitt för att typskydda din frontendkod.
  • TypeScript-typer för konfig- och inställningsobjektGenerera TypeScript-gränssnitt från JSON-konfigurationsfiler för att lägga till typsäkerhet till dina programinställningar.
  • Generera TypeScript-typer från databasposterKonvertera JSON-exporterade databasposter eller ORM-frågeresultat till TypeScript-gränssnitt för dataskiktskodning.
  • Typdata och testfixtureringGenerera TypeScript-gränssnitt från JSON-mockdata och testfixturor för att typera dina enhetstester och Storybook-berättelser.
  • Skriv tredjepartsprogram API-svarGenerera TypeScript-gränssnitt från tredjepartsAPI-svar där officiella typer saknas eller är föråldrade.

Så här fungerar det

Det här verktyget använder en handskriven rekursiv typinferensalgoritm utan externa bibliotek — JSON.parse för att validera och tolka indatan, och sedan en anpassad genomgång som går igenom varje värde i JSON-trädet och skapar TypeScript interface- eller type-deklarationer direkt i webbläsaren. Inget skickas till en server.

  1. 1
    JSON tolkad och validerad
    Din indata skickas till JSON.parse. Om det misslyckas visas det exakta tolkningsfelet direkt under indatan. En lyckad tolkning skapar ett typat värdeträd som driver resten av omvandlingen.
  2. 2
    Rekursiv typinferens
    En rekursiv getType-funktion går igenom varje nod: primitiver mappas till string, number, boolean eller null; objekt utlöser ett nytt namngivet interface; arrayer av objekt får sina nycklar sammanslagna över alla element så att nycklar som bara finns i vissa objekt blir valfria och motstridiga värdetyper slås samman med |.
  3. 3
    Kollisionssäker interface-namngivning
    Varje nästlat objekt får ett PascalCase-namn härlett från sin JSON-nyckel (snake_case, kebab-case och mellanslag normaliseras alla). Om två strukturellt olika objekt skulle dela samma namn läggs ett numeriskt suffix till (Data, Data2, …) istället för att tyst skriva över den tidigare definitionen.
  4. 4
    Utdata renderad och nedladdningsbar
    Nästlade interface skrivs ut först, sedan roten typ, formaterad som export interface eller export type beroende på ditt val. Resultatet kan kopieras till urklipp eller laddas ned som en .ts-fil — allt byggt med en vanlig Blob och ingen serverrundtur.

Relaterade verktyg

Vanliga frågor