Logotipo de Aurabase
aurabasedocumentos
documentos›Guías›Generate TypeScript types

Genere tipos TypeScript desde su base de datos

Un comando convierte tus tablas en tipos. Luego, su editor rechaza una columna incorrecta o un valor incorrecto antes de ejecutar cualquier cosa.

4 min leer·Nivel principiante·Revisado el 12 oct 2026
Este texto en inglés se generó automáticamente a partir del original en francés y aún no ha sido revisado.
Esta página fue traducida automáticamente. La versión en inglés es autorizada.
#
generar

1. Generar el archivo

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

La herramienta lee el esquema de su proyecto y escribe el archivo. Sin --url y --key, busca AURABASE_URL y AURABASE_ANON_KEY (también NEXT_PUBLIC_AURABASE_URL, VITE_AURABASE_URL y AURABASE_SERVICE_ROLE_KEY) en su entorno y en .env, .env.local y .env.development.

En un proyecto con dos tablas y dos funciones, respondió:

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

Ejecútelo nuevamente cada vez que cambie el esquema. Agregue --schema <name> para un esquema que no sea public y --type-name para cambiar el nombre del tipo principal.

#
uso

2. Úselo con el 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!)

El tipo generado describe cada tabla con Row, Insert y Update. Comparado con un archivo real, el compilador dio estos resultados:

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

const wrong: number | undefined = data?.[0]?.title   // error: la cadena no se puede asignar al número
await aura.from('todos').insert({ title: 1 })         // error: el número no se puede asignar a la cadena
await aura.from('todos').insert({ title: 'ok' })      // ok: las otras columnas tienen valores predeterminados

En Insert, una columna con una columna predeterminada o que acepta valores NULL es opcional. En Update, cada columna es opcional.

#
Ayudantes

3. Tipos de filas para tus componentes

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

type Todo = Tables<'todos'>             // una fila, como se lee
type NewTodo = TablesInsert<'todos'>    // qué insert() acepta
type TodoPatch = TablesUpdate<'todos'>  // qué actualización() acepta

Enums<'name'> proporciona los valores de una enumeración de base de datos.

#
Límites

4. Qué se controla

  • Una tabla que no está en el archivo generado es no rechazada: aura.from('anything') aún se compila y sus filas no están tipificadas.
  • Las funciones aparecen bajo Functions con sus argumentos. Una función que devuelve un tipo de fila personalizado se muestra como Json o unknown.
  • El archivo refleja el esquema en el momento en que lo generó. Una columna agregada más tarde es desconocida para los tipos hasta que vuelva a ejecutar la herramienta.
  • Utilice la clave pública para generar los tipos a menos que algunas tablas estén ocultas. Nunca confirme una clave service_role.
Última actualización · 12 oct 2026