2024.11.23
Zodを勉強する
TypeScript
Motivation
- スキーマライブラリにはZod, valibot, yupなどある
- まずは業務で実際に使用しているZodから理解して、そこから横の比較で他のライブラリについて学びたい
Zod
Zod Playground
ZodにはPlaygroundがあり、気軽にZodの挙動を確認できる。ローカルでサンプルプロジェクトを立てる必要がない。
coerce
ある型を別のPrimitive型に強制的に変換したスキーマとして扱いたい時、coerceを使うことができる。因みに、coerce は「コアース」や「コワース」などと読むらしい。
例えば、number 型の 12をstring型の12として扱いたい場合、まずは
const schema = z.coerce.string()
というスキーマを定義する。すると
schema.parse(12) // "12"
となる。 こうなるのは裏では String() が呼ばれているから。