portfolios.tools

SQL zu TypeScript Interface Konverter

Wandeln Sie unterstützte PostgreSQL CREATE TABLE Definitionen in TypeScript Zeileninterfaces mit eindeutiger Nullbarkeit und genauer Darstellung numerischer Werte um.

SQL Eingabe

Fügen Sie CREATE TABLE Anweisungen mit bis zu 100.000 Zeichen ein. Nicht unterstütztes SQL erzeugt einen Fehler, damit Teilausgaben nicht vollständig wirken.

Erzeugtes Ergebnis

Konvertierte Tabellen: 1

export interface FinancePositions {
  /** Primary key */
  "id": string;
  "ticker": string;
  "shares": string;
  /** Default expression: 'created, reviewed' */
  "note": string | null;
  "metadata": unknown | null;
}

Funktionsweise

Fügen Sie eine oder mehrere PostgreSQL CREATE TABLE Anweisungen ein. Unterstützt werden optionales IF NOT EXISTS, Schemanamen, Bezeichner in Anführungszeichen, integrierte Typen, Präzision, Standardwerte, Null Einschränkungen, Primärschlüssel und übliche Einschränkungen.

Prüfen Sie das erzeugte Interface für jede Tabelle. Nullable Spalten bleiben erforderliche Eigenschaften mit dem Werttyp `| null`. JSDoc ergänzt bereinigte Standardausdrücke und Hinweise zu Primärschlüsseln.

Vergleichen Sie die Ausgabe mit der Form Ihrer Abfragen und der Treiberkonfiguration. Eine Abfrage, die nur einige Spalten auswählt, hat eine andere Form als die hier dargestellte vollständige Tabellenzeile.

Nutzen Sie die Ausgabe als Ausgangspunkt für Anwendungstypen. Ergänzen Sie Laufzeitvalidierung und passen Sie treiberspezifische Darstellungen in Ihrem Projekt an.

Schritt für Schritt

  1. Unterstützte PostgreSQL Tabellendefinitionen einfügen
  2. Zeileneigenschaften und Werttypen prüfen
  3. Abfragen und Treiberdarstellungen abgleichen

Praktisches Beispiel

Beispieleingabe: CREATE TABLE finance.positions (id bigint PRIMARY KEY, ticker varchar(12) NOT NULL, shares numeric(12, 4) NOT NULL, note text DEFAULT 'created, reviewed', metadata jsonb);

Der erzeugte Zeilentyp enthält id und ticker als erforderliche Zeichenketten, shares als erforderliche Zeichenkette, note als erforderliche nullable Zeichenkette und metadata als erforderlichen nullable unknown Wert. bigint und numeric werden als Zeichenketten dargestellt, damit keine exakte Genauigkeit von JavaScript Zahlen vorausgesetzt wird.

Wann dieser Konverter sinnvoll ist

Verwenden Sie diesen Konverter, um unterstützte PostgreSQL Tabellendefinitionen in einen Ausgangstyp für vollständige Datenbankzeilen umzuwandeln. Er unterscheidet nullable Werte von fehlenden Eigenschaften.

Prüfen Sie Typzuordnungen anhand Ihres Treibers und Ihrer Abfrageergebnisse, bevor Sie das Interface in einer Anwendung einsetzen.

Häufige Fehler

Behandeln Sie eine nullable Spalte nicht als optionale Eigenschaft. Eine ausgewählte Datenbankzeile enthält die Spalte, auch wenn ihr Wert null sein kann.

Nehmen Sie nicht an, dass der Treiber numeric und bigint als Zeichenketten zurückgibt. Konfigurieren Sie den Treiber oder wandeln Sie Ergebnisse passend zum erzeugten Interface um.

Analyse und Typregeln

Trennen Sie für jede unterstützte Tabelle Definitionen an Kommas außerhalb von Klammern und Zeichenketten. Ordnen Sie jeder SQL Spalte einen TypeScript Typ zu. Erzeugen Sie eine erforderliche Eigenschaft und ergänzen Sie `| null`, wenn die Spalte null zulässt. Primärschlüsselspalten lassen kein null zu. Standardwerte dienen nur der Dokumentation.

Dieses Werkzeug erzeugt Zeileninterfaces aus einem begrenzten PostgreSQL CREATE TABLE Umfang. Exakte numeric und bigint Werte werden als Zeichenketten dargestellt. Dafür muss die Anwendung den Treiber konfigurieren oder Ergebnisse umwandeln. Unbekannte SQL Typen werden zu unknown. JSON und JSONB werden ebenfalls zu unknown.

Umfang und Grenzen

Dieser Parser deckt einen begrenzten PostgreSQL CREATE TABLE Umfang ab, nicht die gesamte SQL Sprache. Unterstützt werden einfache Definitionen, Schema und zitierte Namen, verschachtelte Ausdrücke, übliche Einschränkungen, Standardwerte und Primärschlüssel. Nicht unterstützte Anweisungen und Optionen erzeugen einen Fehler ohne Teilausgabe. ALTER TABLE, Ansichten, CREATE TABLE AS, Partitionierung, Vererbung und die vollständige PostgreSQL Grammatik werden nicht unterstützt. numeric und bigint werden als Zeichenketten ausgegeben und benötigen eine Treiberkonfiguration oder Umwandlung. Datumswerte sind Zeichenketten. Unbekannte Typen werden zu unknown. Die Eigenschaften stehen für vollständige Zeilen, nicht für optionale Einfügefelder oder Teilergebnisse. Erzeugte Typen validieren keine Laufzeitdaten. Die Eingabe darf bis zu 100.000 Zeichen umfassen.

Wichtige Begriffe

Zeileninterface
Ein Datenbankzeileninterface beschreibt die Eigenschaften einer vollständigen Zeile, einschließlich nullable Werten.
Nullable Spalte
Eine nullable Spalte erlaubt den Wert null. Das bedeutet nicht, dass die Eigenschaft in einer vollständigen Zeile fehlt.
Primärschlüssel
Ein Primärschlüssel identifiziert Zeilen eindeutig und seine Spalten dürfen in PostgreSQL nicht null sein.

Verwandte Aufgaben

Wandeln Sie unterstützte PostgreSQL Tabellendefinitionen in TypeScript Zeilentypen um. Für HTTP Anfragen und Antworten verwenden Sie ein separates API Schemawerkzeug.

Dieser Konverter beschreibt die Form von Datenbankzeilen. Er erzeugt weder Laufzeitvalidierung noch Funktionen für den Datenbankzugriff.

FAQ

Welche SQL Anweisungen kann das Werkzeug lesen?

Der Parser liest unterstützte CREATE TABLE Anweisungen und trennt Spalten und Einschränkungen nur auf oberster Ebene. Kommas in Typpräzision, verschachtelten Ausdrücken und in Anführungszeichen stehenden Standardwerten bleiben zusammen. Spaltennamen und Typen, Nullbarkeit, Standardwerte und Primärschlüssel ergeben je Tabelle ein Interface.

Wie werden nullable Spalten und Primärschlüssel dargestellt?

Eine nullable Spalte bleibt in einer ausgewählten Zeile vorhanden. Daher ist die Eigenschaft erforderlich und ihr Werttyp enthält null. Eine NOT NULL Spalte und ein Primärschlüssel enthalten kein null. Ein Standardwert betrifft Einfügungen, nicht das Vorhandensein der Eigenschaft in einer ausgewählten Zeile.

Wie werden SQL Typen TypeScript zugeordnet?

Kleine Ganzzahlen und Fließkommatypen werden zu number. bigint, numeric, decimal und money werden zu string, damit exakte Werte erhalten bleiben. Konfigurieren Sie den Datenbanktreiber so, dass er diese Werte als Zeichenketten liefert, oder wandeln Sie sie vor der Verwendung des erzeugten Typs um. JSON und JSONB werden zu unknown, da JSON einen Skalar, ein Array, ein Objekt oder null enthalten kann. Datums und Zeittypen werden zu string.

Welche Syntax liegt außerhalb des unterstützten Umfangs?

Der Parser unterstützt einen begrenzten PostgreSQL CREATE TABLE Umfang mit optionalem IF NOT EXISTS, optionalem Schema, Bezeichnern in Anführungszeichen, Spalten, üblichen Einschränkungen, Standardwerten und Primärschlüsseln. Nicht unterstützte Endoptionen und andere Anweisungen werden abgelehnt, statt eine Teilausgabe zu erzeugen. ALTER TABLE, Ansichten, CREATE TABLE AS, Partitionen, Vererbung sowie viele PostgreSQL Typen und Einschränkungen werden nicht verarbeitet.

Was ergänzt die JSDoc Option?

Wenn aktiviert, ergänzt JSDoc eine sichere Kurzbeschreibung des Spaltenstandardwerts und des Primärschlüsselstatus. Zeilenumbrüche werden entfernt und Kommentarenden neutralisiert, damit SQL den erzeugten Kommentar nicht schließen kann. Die Option ändert nur die Dokumentation, nicht die TypeScript Eigenschaftstypen.

Verwandte Werkzeuge

Kombinieren Sie Datenbankzeileninterfaces bei Bedarf mit einem separaten API Schema und einer Laufzeitvalidierung für die Verträge Ihrer Anwendung.