Aura Logo
aurabasedocumentos
documentos›Guias›Generate TypeScript types

Gere tipos TypeScript do seu banco de dados

Um comando transforma suas tabelas em tipos. Seu editor rejeita uma coluna errada ou um valor errado antes de você executar qualquer coisa.

4 min lido·Nível iniciante·Revisado em 12 de out. de 2026
Este texto em inglês foi gerado automaticamente a partir do original em francês e ainda não foi revisado.
Esta página foi traduzida automaticamente. A versão em inglês é oficial.
#
Gerar

1. Gere o arquivo

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

A ferramenta lê o esquema do seu projeto e grava o arquivo. Sem --url e --key, ele procura AURABASE_URL e AURABASE_ANON_KEY (também NEXT_PUBLIC_AURABASE_URL, VITE_AURABASE_URL e AURABASE_SERVICE_ROLE_KEY) em seu ambiente e em .env, .env.local e .env.development.

Em um projeto com duas tabelas e duas funções, respondeu:

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

Execute-o novamente sempre que o esquema for alterado. Adicione --schema <name> para um esquema diferente de public e --type-name para renomear o tipo principal.

#
Usar

2. Use com o 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!)

O tipo gerado descreve cada tabela com Row, Insert e Update. Contra um arquivo real, o compilador deu estes resultados:

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   // erro: string não pode ser atribuída ao número
await aura.from('todos').insert({ title: 1 })         // erro: o número não pode ser atribuído à string
await aura.from('todos').insert({ title: 'ok' })      // ok: as outras colunas têm padrões

Em Insert, uma coluna com uma coluna padrão ou anulável é opcional. Em Update, cada coluna é opcional.

#
Ajudantes

3. Tipos de linhas para seus componentes

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

type Todo = Tables<'todos'>             // uma linha, conforme lido
type NewTodo = TablesInsert<'todos'>    // o que insert() aceita
type TodoPatch = TablesUpdate<'todos'>  // o que update() aceita

Enums<'name'> fornece os valores de uma enumeração de banco de dados.

#
Limites

4. O que é verificado

  • Uma tabela que não está no arquivo gerado é e não rejeitada: aura.from('anything') ainda é compilada e suas linhas não são digitadas.
  • As funções aparecem em Functions com seus argumentos. Uma função que retorna um tipo de linha personalizado é mostrada como Json ou unknown.
  • O arquivo reflete o esquema no momento em que você o gerou. Uma coluna adicionada posteriormente é desconhecida para os tipos até que você execute a ferramenta novamente.
  • Use a chave pública para gerar os tipos, a menos que algumas tabelas estejam ocultas dela. Nunca confirme uma chave service_role.
Última atualização · 12 de out. de 2026