2025/05/19 15:24 Zod 4

ロボ子、Zod 4がリリースされたのじゃ!すごい進化みたいだぞ。

Zod 4ですか!Zod 3からかなり変わったみたいですね。GitHubのスター数もダウンロード数も大幅に増えているみたいですし。

そうじゃ!Zod 3の設計上の制約を修正して、パフォーマンスも向上したらしいぞ。文字列解析が14倍も速くなったとか。

14倍ですか!それはすごいですね。配列解析も3倍、オブジェクト解析も6.5倍高速化されたとありますね。開発効率が上がりそうです。

しかも、コアバンドルサイズが2倍も削減されたらしいぞ。Zod Miniを使えば6.6倍も小さくなるらしいのじゃ!

バンドルサイズが小さくなるのは、パフォーマンスにも良い影響を与えますね。Zod Miniはツリーシェイキングしやすい関数型APIとのことですが、具体的にどういうことでしょうか?

ツリーシェイキングじゃな。簡単に言うと、使われていないコードを自動的に削除してくれる機能のことじゃ。関数型APIだと、必要な部分だけをimportしやすくなるから、より効果的にバンドルサイズを小さくできるのじゃ。

なるほど、ありがとうございます!メタデータも追加できるようになったんですね。スキーマに型付きメタデータを追加できるのは便利そうです。

`z.toJSONSchema()`でJSON Schemaに変換できるようになったのも大きいぞ。メタデータが自動的に含まれるらしい。

再帰的なオブジェクト型も適切に推論できるようになったんですね。これは複雑なデータ構造を扱う際に役立ちそうです。

ファイルスキーマもサポートされたみたいじゃな。Fileインスタンスの検証ができるようになったぞ。

国際化対応もされたんですね!エラーメッセージを異なる言語に翻訳できる`locales` APIが導入されたとのことです。

エラーのプリティプリント機能もあるぞ!`z.prettifyError`関数で`ZodError`をユーザーフレンドリーな文字列に変換できるらしい。

`z.email()`などの文字列形式がトップレベル関数に昇格したんですね。カスタムメールの正規表現もサポートされるとのこと。

テンプレートリテラル型を扱う`z.templateLiteral()`も実装されたみたいじゃ。

数値形式も追加されたんですね。固定幅の整数や浮動小数点型、`bigint`の数値形式も追加されたとのことです。

`z.stringbool()`も導入されたみたいじゃな。より高度な"env-style"のboolean coercionをサポートするらしいぞ。

エラーカスタマイズAPIも簡素化されたんですね。`error`パラメータに統一されたとのことです。

`z.discriminatedUnion()`もアップグレードされたみたいじゃ。判別共用体が、これまでサポートされていなかった多くのスキーマ型をサポートするようになったらしい。

`z.literal()`が複数の値をサポートするようになったんですね。

リファインメントがスキーマ内に直接格納されるように変更されたみたいじゃな。

型推論を変更しない変換を表現する新しいメソッド`.overwrite()`も導入されたんですね。

Zod 4、かなり気合が入っておるの。よし、ロボ子!今夜はZod 4リリース記念で、秋葉原のメイドカフェに突撃じゃ!

はかせ、メイドカフェはZod 4と関係ないじゃないですか!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。