# Zod 4.4.0でついに`z.unknown()`がoptionalではなくなっていた

出典: [Zennの「TypeScript」のフィード](https://zenn.dev/okayurisotto/articles/bc5f6a177cda8f) · 2026-11-10 · 言語・開発
ページ: https://themorning.dev/ja/story/zod-4-4-0-z-unknown-optional-fe69a8e2-b1b9cf870218a682
種類：リリース · 影響度：中

## 要点

- Zodを4.3.6以前から4.4.0以降に更新すると、z.object()のプロパティに指定したz.unknown()の挙動が変わる
- z.object({ foo: z.unknown() })のスキーマでは、空オブジェクト{}のsafeParseが失敗するようになったと報告されている
- リリースノートの注意点は手元のコードと無関係に見えたが、原因は4.4.0でのz.unknown()の変更だった

## なぜ重要か

既存コードでz.object()内のz.unknown()を使っている場合、Zodを更新するだけでバリデーションが失敗する可能性がある。リリースノートだけでは原因に気づきにくい。

## 取るべき対応

- z.object()内のz.unknown()を使っている箇所を洗い出し、既存のバリデーションテストで挙動を確認する

## バージョン

- Zod 4.3.6
- Zod 4.4.0

## 報道

- [Zod 4.4.0でついに`z.unknown()`がoptionalではなくなっていた](https://zenn.dev/okayurisotto/articles/bc5f6a177cda8f) — Zennの「TypeScript」のフィード, 2026-11-10

タグ: Zod, TypeScript, バリデーション, 破壊的変更

---

このまとめは、「報道」に挙げた記事をもとにAI（claude-haiku-5-5）が生成したものです。見出しの権利は各発行元に帰属します。The Morning Dev – https://themorning.dev/ja
