Logo Aurabase
aurabazadokumenty
dokumenty›Przewodniki›Generate TypeScript types

Wygeneruj typy TypeScript ze swojej bazy danych

Jedno polecenie zamienia tabele w typy. Następnie edytor odrzuca niewłaściwą kolumnę lub niewłaściwą wartość, zanim cokolwiek uruchomisz.

4 min przeczytane·Poziom początkujący·Zmieniono 12 paź 2026
Ten tekst w języku angielskim został wygenerowany automatycznie na podstawie francuskiego oryginału i nie był jeszcze recenzowany.
Ta strona została przetłumaczona automatycznie. Wersja angielska jest miarodajna.
#
Spowodować

1. Wygeneruj plik

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

Narzędzie odczytuje schemat Twojego projektu i zapisuje plik. Bez --url i --key szuka AURABASE_URL i AURABASE_ANON_KEY (także NEXT_PUBLIC_AURABASE_URL, VITE_AURABASE_URL i AURABASE_SERVICE_ROLE_KEY) w twoim środowisku oraz w .env, .env.local i .env.development.

W projekcie z dwiema tabelami i dwiema funkcjami odpowiedział:

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

Uruchom go ponownie za każdym razem, gdy zmieni się schemat. Dodaj --schema <name> dla schematu innego niż public i --type-name, aby zmienić nazwę typu głównego.

#
Używać

2. Użyj go z klientem

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

Wygenerowany typ opisuje każdą tabelę za pomocą Row, Insert i Update. W porównaniu z prawdziwym plikiem kompilator dał następujące wyniki:

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   // błąd: ciągu nie można przypisać do liczby
await aura.from('todos').insert({ title: 1 })         // błąd: liczby nie można przypisać do ciągu
await aura.from('todos').insert({ title: 'ok' })      // ok: pozostałe kolumny mają wartości domyślne

W Insert kolumna z kolumną domyślną lub kolumną dopuszczającą wartość null jest opcjonalna. W Update każda kolumna jest opcjonalna.

#
Pomocnicy

3. Typy wierszy komponentów

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

type Todo = Tables<'todos'>             // rząd, jak czytano
type NewTodo = TablesInsert<'todos'>    // jaka metoda Insert() akceptuje
type TodoPatch = TablesUpdate<'todos'>  // jaka aktualizacja() akceptuje

Enums<'name'> podaje wartości wyliczenia bazy danych.

#
Limity

4. Co jest sprawdzane

  • Tabela, której nie ma w wygenerowanym pliku, jest , a nie odrzucona: aura.from('anything') nadal się kompiluje, a jej wiersze nie mają typu.
  • Funkcje pojawiają się pod Functions wraz z ich argumentami. Funkcja zwracająca niestandardowy typ wiersza jest wyświetlana jako Json lub unknown.
  • Plik odzwierciedla schemat z chwili jego wygenerowania. Kolumna dodana później jest nieznana typom do czasu ponownego uruchomienia narzędzia.
  • Użyj klucza publicznego do wygenerowania typów, chyba że niektóre tabele są przed nim ukryte. Nigdy nie zatwierdzaj klucza service_role.
Ostatnia aktualizacja · 12 paź 2026