Logo Aurabase
aurabasedocumenti
documenti›Guide›Generate TypeScript types

Genera tipi TypeScript dal tuo database

Un comando trasforma le tue tabelle in tipi. Il tuo editor quindi rifiuta una colonna sbagliata o un valore sbagliato prima di eseguire qualsiasi cosa.

4 min letto·Livello principiante·Revisionato il 12 ott 2026
Questo testo inglese è stato generato automaticamente dall'originale francese e non è stato ancora rivisto.
Questa pagina è stata tradotta automaticamente. Fa fede la versione inglese.
#
Genera

1. Generare il file

terminalbash
npx @aurabase/gen --url https://my-app.aurabase.cloud --key "$AURA_ANON_KEY" --out src/types/database.types.ts

Lo strumento legge lo schema del tuo progetto e scrive il file. Senza --url e --key, cerca AURABASE_URL e AURABASE_ANON_KEY (anche NEXT_PUBLIC_AURABASE_URL, VITE_AURABASE_URL e AURABASE_SERVICE_ROLE_KEY) nel tuo ambiente e in .env, .env.local e .env.development.

Su un progetto con due tabelle e due funzioni, ha risposto:

text
[aurabase-gen] ✓ Types écrits dans /tmp/database.types.ts (2 table(s), 2 fonction(s), 0 enum(s), 0 vue(s)).

Eseguilo di nuovo ogni volta che lo schema cambia. Aggiungi --schema <name> per uno schema diverso da public e --type-name per rinominare il tipo principale.

#
Utilizzare

2. Usalo con il cliente

src/lib/aurabase.tstypescript
import { createClient } from '@aurabase/aurabase-js'
import type { Database } from '../types/database.types'

export const aura = createClient<Database>(process.env.AURA_URL!, process.env.AURA_ANON_KEY!)

Il tipo generato descrive ciascuna tabella con Row, Insert e Update. Rispetto a un file reale, il compilatore ha fornito questi risultati:

checked.tstypescript
const { data } = await aura.from('todos').select('id, title, done')
const title: string | undefined = data?.[0]?.title   // ok

const wrong: number | undefined = data?.[0]?.title   // errore: la stringa non è assegnabile al numero
await aura.from('todos').insert({ title: 1 })         // errore: il numero non è assegnabile alla stringa
await aura.from('todos').insert({ title: 'ok' })      // ok: le altre colonne hanno valori predefiniti

In Insert, una colonna con una colonna predefinita o nullable è facoltativa. In Update, ogni colonna è facoltativa.

#
Aiutanti

3. Tipi di riga per i componenti

Todo.tsxtypescript
import type { Tables, TablesInsert, TablesUpdate, Enums } from '../types/database.types'

type Todo = Tables<'todos'>             // una riga, come letto
type NewTodo = TablesInsert<'todos'>    // cosa accetta insert()
type TodoPatch = TablesUpdate<'todos'>  // cosa accetta update()

Enums<'name'> fornisce i valori di un'enumerazione del database.

#
Limiti

4. Cosa viene controllato

  • Una tabella che non è nel file generato è non rifiutata: aura.from('anything') viene comunque compilato e le sue righe non sono tipizzate.
  • Le funzioni vengono visualizzate sotto Functions con i relativi argomenti. Una funzione che restituisce un tipo di riga personalizzato viene visualizzata come Json o unknown.
  • Il file riflette lo schema nel momento in cui lo hai generato. Una colonna aggiunta successivamente risulta sconosciuta ai tipi finché non si esegue nuovamente lo strumento.
  • Utilizzare la chiave pubblica per generare i tipi a meno che alcune tabelle non siano nascoste da essa. Non eseguire mai il commit di una chiave service_role.
Ultimo aggiornamento · 12 ott 2026