Zodを勉強する

Motivation

  • スキーマライブラリにはZod, valibot, yupなどある
  • まずは業務で実際に使用しているZodから理解して、そこから横の比較で他のライブラリについて学びたい

Zod

Zod Playground

ZodにはPlaygroundがあり、気軽にZodの挙動を確認できる。ローカルでサンプルプロジェクトを立てる必要がない。

coerce

ある型を別のPrimitive型に強制的に変換したスキーマとして扱いたい時、coerceを使うことができる。因みに、coerce は「コアース」や「コワース」などと読むらしい。

例えば、number 型の 12string型の12として扱いたい場合、まずは

const schema = z.coerce.string()

というスキーマを定義する。すると

schema.parse(12) // "12"

となる。 こうなるのは裏では String() が呼ばれているから。