Aurabase-logo
aurabasisdocumenten
documenten›Gidsen›Generate TypeScript types

Genereer TypeScript typen uit uw database

Eén opdracht verandert uw tabellen in typen. Uw editor wijst vervolgens een verkeerde kolom of een verkeerde waarde af voordat u iets uitvoert.

4 min lezen·Niveau beginner·Herzien op 12 okt 2026
Deze Engelse tekst is automatisch gegenereerd op basis van het Franse origineel en is nog niet beoordeeld.
Deze pagina is automatisch vertaald. De Engelse versie is gezaghebbend.
#
Genereer

1. Genereer het bestand

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

De tool leest het schema van uw project en schrijft het bestand. Zonder --url en --key zoekt het naar AURABASE_URL en AURABASE_ANON_KEY (ook NEXT_PUBLIC_AURABASE_URL, VITE_AURABASE_URL en AURABASE_SERVICE_ROLE_KEY) in uw omgeving en in .env, .env.local en .env.development.

Op een project met twee tabellen en twee functies antwoordde het:

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

Voer het opnieuw uit wanneer het schema verandert. Voeg --schema <name> toe voor een ander schema dan public en --type-name om de naam van het hoofdtype te wijzigen.

#
Gebruik

2. Gebruik het bij de cliënt

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!)

Het gegenereerde type beschrijft elke tabel met Row, Insert en Update. Tegen een echt bestand gaf de compiler deze resultaten:

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   // fout: string is niet toewijsbaar aan nummer
await aura.from('todos').insert({ title: 1 })         // fout: nummer is niet toewijsbaar aan string
await aura.from('todos').insert({ title: 'ok' })      // ok: de andere kolommen hebben standaardwaarden

In Insert is een kolom met een standaardkolom of een null-kolom optioneel. In Update is elke kolom optioneel.

#
Helpers

3. Rijtypen voor uw componenten

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

type Todo = Tables<'todos'>             // een rij, zoals gelezen
type NewTodo = TablesInsert<'todos'>    // wat insert() accepteert
type TodoPatch = TablesUpdate<'todos'>  // welke update() accepteert

Enums<'name'> geeft de waarden van een database-enum.

#
Grenzen

4. Wat wordt gecontroleerd

  • Een tabel die niet in het gegenereerde bestand staat, is en niet afgewezen: aura.from('anything') wordt nog steeds gecompileerd en de rijen ervan zijn niet getypt.
  • Functies verschijnen onder Functions met hun argumenten. Een functie die een aangepast rijtype retourneert, wordt weergegeven als Json of unknown.
  • Het bestand weerspiegelt het schema op het moment dat u het hebt gegenereerd. Een later toegevoegde kolom is onbekend voor de typen totdat u het hulpprogramma opnieuw uitvoert.
  • Gebruik de openbare sleutel om de typen te genereren, tenzij sommige tabellen ervoor verborgen zijn. Voer nooit een service_role-sleutel in.
Laatst bijgewerkt · 12 okt 2026