Zum Hauptinhalt springen

JSON zu TypeScript Konverter – kostenlos

Generieren Sie TypeScript-Interfaces oder Type-Aliases aus beliebigen JSON-Objekten oder Arrays. JSON einfügen und sofort verwendbare TypeScript-Typen erhalten.

Funktioniert nach dem Laden offline
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;
}

Häufige Anwendungen

  • TypeScript-Typen aus API-Antworten generierenFügen Sie eine API-JSON-Antwort ein und generieren Sie sofort TypeScript-Schnittstellen, um Ihren Frontend-Code typensicher zu machen.
  • TypeScript-Typen für Konfigurations- und EinstellungsobjekteGenerieren Sie TypeScript-Schnittstellen aus JSON-Konfigurationsdateien, um Ihren Anwendungseinstellungen Typensicherheit hinzuzufügen.
  • TypeScript-Typen aus Datensätzen generierenKonvertieren Sie JSON-exportierte Datensätze oder ORM-Abfrageergebnisse in TypeScript-Schnittstellen für die Datenschicht-Typisierung.
  • Mock-Daten und Test-Fixtures typenGenerieren Sie TypeScript-Schnittstellen aus JSON-Mock-Daten und Test-Fixtures, um Ihre Unit-Tests und Storybook-Stories zu typen.
  • Drittanbieter-API-Antworten typenGenerieren Sie TypeScript-Schnittstellen aus Drittanbieter-API-Antworten, bei denen offizielle Typen fehlen oder veraltet sind.

So funktioniert es

Dieses Tool nutzt einen selbst geschriebenen rekursiven Typinferenz-Algorithmus ohne externe Bibliotheken – JSON.parse zum Prüfen und Parsen der Eingabe, dann eine eigene Traversierung, die jeden Wert im JSON-Baum durchläuft und TypeScript-interface- oder type-Deklarationen direkt im Browser ausgibt. Nichts wird an einen Server gesendet.

  1. 1
    JSON wird geparst und geprüft
    Ihre Eingabe wird an JSON.parse übergeben. Schlägt das fehl, erscheint der genaue Parse-Fehler sofort unter der Eingabe. Ein erfolgreiches Parsen ergibt einen typisierten Wertebaum, der die restliche Umwandlung steuert.
  2. 2
    Rekursive Typinferenz
    Eine rekursive Funktion getType durchläuft jeden Knoten: Primitive werden zu string, number, boolean oder null; Objekte erzeugen ein neues benanntes Interface; bei Arrays aus Objekten werden die Schlüssel aller Elemente zusammengeführt, sodass nur in manchen Einträgen vorhandene Schlüssel optional werden und widersprüchliche Werttypen mit | verbunden werden.
  3. 3
    Kollisionssichere Interface-Benennung
    Jedes verschachtelte Objekt erhält einen PascalCase-Namen, der aus seinem JSON-Schlüssel abgeleitet wird (snake_case, kebab-case und Leerzeichen werden normalisiert). Würden zwei strukturell unterschiedliche Objekte denselben Namen erhalten, wird ein Zahlensuffix angehängt (Data, Data2, …), statt die frühere Definition stillschweigend zu überschreiben.
  4. 4
    Ausgabe wird angezeigt und ist herunterladbar
    Verschachtelte Interfaces werden zuerst ausgegeben, dann der Wurzeltyp – je nach Auswahl als export interface oder export type formatiert. Das Ergebnis kann in die Zwischenablage kopiert oder als .ts-Datei heruntergeladen werden – alles mit einem Standard-Blob und ohne Serverumweg.

Ähnliche Tools

Häufige Fragen