İçeriği şemalarla tiplemek

1 dk okuma

Frontmatter, kimsenin doğrulamadığı küçük bir veritabanıdır. Eksik bir başlık, 10/08 diye yazılmış bir tarih, metne dönüşmüş bir etiket listesi: her biri sessizce yayına çıkar.

Her collection'a bir şema

Alanları bir kez, collection'ın yanında tanımlayın ve build her dosyayı bu şemadan geçirsin.

const posts = z.object({
  title: z.string(),
  date: z.coerce.date(),
  tags: z.array(z.string()).default([]),
});

Aynı şema editöre formunu, layout'lara tiplerini verir. Olmayan bir alan sayfada boşluk değil, şablonda tip hatası olur.

Bir yeri gösteren hatalar

Hata mesajı da bir arayüzdür. "Geçersiz girdi" kimseye yardım etmez; content/posts/hello.md:3: date: Invalid date sizi doğrudan satıra götürür.