Convertitore da SQL a interfacce TypeScript
Converti definizioni CREATE TABLE PostgreSQL supportate in interfacce TypeScript per le righe, con nullabilità esplicita e rappresentazione esatta dei valori numerici.
Come funziona
Incolla una o più istruzioni CREATE TABLE PostgreSQL. L’analizzatore supporta IF NOT EXISTS facoltativo, schemi, identificatori tra virgolette, tipi integrati, precisione, valori predefiniti, vincoli di nullabilità, chiavi primarie e vincoli comuni.
Controlla l’interfaccia generata per ogni tabella. Le colonne nullable restano proprietà obbligatorie con tipo di valore `| null`. L’opzione JSDoc aggiunge valori predefiniti ripuliti e note sulle chiavi primarie.
Confronta l’output con la struttura delle query e la configurazione del driver. Una query che seleziona solo alcune colonne ha una struttura diversa dalla riga completa rappresentata qui.
Usa l’output come punto di partenza per i tipi dell’applicazione. Aggiungi la validazione in esecuzione e adatta nel progetto le rappresentazioni specifiche del driver.
Passo dopo passo
- Incolla definizioni di tabelle PostgreSQL supportate
- Controlla le proprietà delle righe e i tipi dei valori
- Verifica query e rappresentazioni del driver
Esempio pratico
Esempio di input: 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);
Il tipo di riga generato include id e ticker come stringhe obbligatorie, shares come stringa obbligatoria, note come stringa nullable obbligatoria e metadata come valore unknown nullable obbligatorio. bigint e numeric sono stringhe per non presumere che i numeri JavaScript conservino valori esatti.
Quando usare questo convertitore
Usa questo convertitore per trasformare definizioni di tabelle PostgreSQL supportate in un tipo iniziale per righe complete. Distingue i valori nullable dalle proprietà mancanti.
Controlla le mappature dei tipi in base al driver e ai risultati delle query prima di usare l’interfaccia nell’applicazione.
Errori comuni
Non trattare una colonna nullable come proprietà facoltativa. Una riga selezionata include la colonna, anche se il valore può essere null.
Non presumere che il driver restituisca numeric e bigint come stringhe. Configura o converti i risultati in modo che corrispondano all’interfaccia generata.
Regole di analisi e tipi
Per ogni tabella supportata, separa le definizioni con virgole fuori da parentesi e valori tra virgolette. Mappa il tipo SQL di ogni colonna a un tipo TypeScript. Genera una proprietà obbligatoria e aggiungi `| null` se la colonna ammette null. Le colonne chiave primaria non ammettono null. I valori predefiniti sono solo documentazione.
Questo strumento genera interfacce di riga da un sottoinsieme di CREATE TABLE PostgreSQL. I valori numeric e bigint esatti sono rappresentati come stringhe; l’applicazione deve configurare il driver o convertire i risultati. I tipi SQL sconosciuti diventano unknown. Anche JSON e JSONB diventano unknown.
Ambito e limiti
Questo analizzatore copre un sottoinsieme di CREATE TABLE PostgreSQL, non tutto SQL. Supporta definizioni di base, nomi con schema e tra virgolette, espressioni annidate, vincoli comuni, valori predefiniti e chiavi primarie. Istruzioni o opzioni non supportate generano un errore senza interfacce parziali. Non gestisce ALTER TABLE, viste, CREATE TABLE AS, partizioni, ereditarietà né tutta la grammatica PostgreSQL. I valori numeric e bigint vengono emessi come stringhe e richiedono configurazione o conversione del driver. Le date sono stringhe. I tipi sconosciuti diventano unknown. Le proprietà rappresentano righe complete, non campi facoltativi di inserimento o risultati di query parziali. I tipi generati non convalidano dati in esecuzione. L’input può contenere fino a 100.000 caratteri.
Termini chiave
- Interfaccia di riga
- Un’interfaccia di riga del database descrive le proprietà restituite per una riga completa, compresi i valori nullable.
- Colonna nullable
- Una colonna nullable ammette il valore null. Non significa che la proprietà sia assente da una riga completa.
- Chiave primaria
- Una chiave primaria identifica le righe in modo univoco e le sue colonne non possono contenere null in PostgreSQL.
Attività correlate
Converti definizioni di tabelle PostgreSQL supportate in tipi TypeScript per le righe. Per descrivere richieste e risposte HTTP, usa uno strumento separato per gli schemi API.
Questo convertitore si concentra sulla struttura delle righe del database. Non crea validazione in esecuzione né funzioni di accesso ai dati.
FAQ
Quali istruzioni SQL può leggere?
L’analizzatore legge istruzioni CREATE TABLE supportate e separa colonne e vincoli solo al livello principale. Mantiene insieme le virgole di precisione dei tipi, le espressioni annidate e i valori predefiniti tra virgolette. Crea un’interfaccia per tabella usando nomi e tipi delle colonne, nullabilità, valori predefiniti e chiavi primarie.
Come vengono rappresentate le colonne nullable e le chiavi primarie?
Una colonna nullable è comunque presente in una riga selezionata, quindi la proprietà è obbligatoria e il tipo include null. Una colonna NOT NULL e una chiave primaria non includono null. Un valore predefinito riguarda gli inserimenti, non la presenza della proprietà in una riga selezionata.
Come vengono convertiti i tipi SQL in TypeScript?
I tipi interi piccoli e in virgola mobile diventano number. bigint, numeric, decimal e money diventano string per conservare i valori esatti. Configura il driver del database per restituirli come stringhe oppure convertili prima di usare il tipo generato. JSON e JSONB diventano unknown perché JSON può contenere uno scalare, un array, un oggetto o null. I tipi di data e ora diventano string.
Quale sintassi non è inclusa nel sottoinsieme supportato?
L’analizzatore supporta un sottoinsieme di CREATE TABLE PostgreSQL con IF NOT EXISTS facoltativo, schema facoltativo, identificatori tra virgolette, colonne, vincoli comuni, valori predefiniti e chiavi primarie. Rifiuta opzioni finali e istruzioni non pertinenti invece di produrre risultati parziali. Non analizza ALTER TABLE, viste, CREATE TABLE AS, partizioni, ereditarietà né tutte le forme di tipi e vincoli PostgreSQL.
Cosa aggiunge l’opzione JSDoc?
Se attivato, JSDoc aggiunge un riepilogo sicuro del valore predefinito della colonna e dello stato di chiave primaria. Appiattisce le nuove righe e neutralizza i terminatori dei commenti affinché SQL non possa chiudere il commento generato. L’opzione cambia solo la documentazione, non i tipi delle proprietà TypeScript.
Strumenti correlati
Affianca le interfacce di riga del database a uno schema API separato e a un livello di validazione in esecuzione quando l’applicazione richiede questi contratti.