ErlangFormDocs v1.0.0
Referensi

Dukungan schema

Matriks inferensi Zod dan batasan renderer Erlangform 1.0.0.

Nilai form

[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "active",
    "type": "boolean"
  },
  {
    "name": "email",
    "type": "email"
  }
]

Root harus z.object(). Tabel ini menjelaskan inferensi pada child; validasi Zod tetap dipasang terpisah pada TanStack Form.

Schema childMetadata/render
z.string()string; input teks
z.email(), z.url()email/url; input khusus
z.number()number; kosong menjadi undefined
z.boolean()boolean; checkbox
z.enum stringstring dengan options; select
z.enum angkanumber; bukan select otomatis
Literal stringstring dengan satu pilihan
Literal number/booleannumber/boolean
z.iso.date(), z.iso.time()date/time; string
z.iso.datetime()datetime; string UTC
z.date()date-object; Date lokal
z.file()file; File pertama
z.object()object; child rekursif
z.array()array; tambah/hapus/duplikat/pindah
z.tuple()tuple; posisi tetap
z.record()record; key yang sudah ada pada nilai
z.discriminatedUnion()union; cabang berdasarkan discriminator
z.union() dengan metadata jenis samaRenderer jenis pertama; opsi string digabung
z.union() campuranunknown; tidak ada input bawaan
Intersection dua objectChild kedua object digabung tanpa deduplikasi
Intersection jenis samaMetadata sisi kiri
Intersection campuranunknown

Wrapper dan pipeline

optional, nullable, default, catch, readonly, nonoptional, dan prefault dibuka untuk membaca jenis field. lazy di-resolve dan pipe dibaca dari sisi input. Ini hanya inferensi: tidak otomatis mengisi defaultValues, mengunci readonly, menghapus null, atau menerapkan hasil transform ke state.

Constructor format Zod 4 seperti z.email() dikenali secara khusus. Check format yang ditempel pada string lama tidak selalu mengubah metadata dari string menjadi jenis input khusus.

Tidak ada renderer bawaan

Jenis yang tidak terdaftar, seperti map/set/bigint/symbol/unknown/any, masuk fallback unknown dan tidak menampilkan input tanpa custom registry unknown. Literal banyak nilai dan union kompleks perlu diperiksa dengan infer karena tidak semua bentuk mempunyai kontrol yang sesuai.

Recursive lazy yang merujuk kembali ke dirinya sendiri tidak memiliki penjagaan kedalaman/siklus; hindari schema rekursif tak terbatas. Tuple rest tidak membuat posisi dinamis. Discriminator disarankan berupa string literal tunggal per cabang.

Aturan Zod min/max tidak otomatis berubah menjadi atribut HTML atau batas jumlah item array. Isi opsi fieldConfig dan array secara eksplisit, serta pertahankan validator schema untuk menjamin data valid.

Contoh penggunaan

Gunakan form dari useForm. Lihat persiapan awal.

example.tsx
const schema = z.object({
  name: z.string(),
  active: z.boolean(),
});

const fields = infer(schema);

Di halaman ini