概要: Zod v4.6.7 API リファレンスカタログ
本カタログは、Zod v4 (v4.6.7) のすべての公開パッケージエントリーポイント(zod、zod/mini、zod/v4/core、zod/locales、zod/compile、zod/v3)を対象としたシンボル索引付き API リファレンスです。左サイドバーのツリーまたは / キーのクイックフィルターを使用して、クラス、コンストラクタ関数、チェック関数、型定義を即座に検索できます。
Source Code
from drawlib import canvas
from drawlib.diagrams.architecture import ArchitectureDiagram, Node, NodeGroup, PhosphorIcon
from drawlib.styles import Styles
from drawlib.text import text
canvas.clear()
canvas.setup(width=180, height=102, dpi=150)
text(
(90, 97.0),
"Zod v4.6.7 公開サブパス -> 5 カタログリファレンスモジュール",
style=Styles.DarkBold.patch(text_size=13.0),
)
d = ArchitectureDiagram(
node_style=Styles.PrimaryBold,
node_text_style=Styles.DarkBold.patch(text_size=10.5),
edge_style=Styles.PrimaryBold,
edge_text_style=Styles.DarkBold.patch(text_size=10.0),
node_card_style=Styles.Neutral,
)
# Left Group: Public Package Subpath Exports
pkg_group = d.add(
NodeGroup(title="公開パッケージ (package.json)", padding=5.0),
xy=(2.0, 4.0),
)
sub_classic = pkg_group.add(
Node(
"zod (.) / zod/v4\nクラシックメソッド API",
width=48,
height=14,
icon=PhosphorIcon.PACKAGE,
icon_size=6.0,
style=Styles.WhiteBold,
text_style=Styles.WhiteBold.patch(text_size=10.5),
card_style=Styles.PrimaryFlat,
),
xy=(29.0, 68.0),
)
sub_locales = pkg_group.add(
Node(
"zod/locales\n50 言語ロケールパック",
width=48,
height=14,
icon=PhosphorIcon.GLOBE,
icon_size=6.0,
card_style=Styles.Neutral,
),
xy=(29.0, 49.0),
)
sub_mini = pkg_group.add(
Node(
"zod/mini\nTree-Shakeable 関数 API",
width=48,
height=14,
icon=PhosphorIcon.FEATHER,
icon_size=6.0,
card_style=Styles.PrimaryNeutral,
),
xy=(29.0, 30.0),
)
sub_core = pkg_group.add(
Node(
"zod/v4/core & compile\n共通 $Zod* エンジン + AOT",
width=48,
height=14,
icon=PhosphorIcon.CPU,
icon_size=6.0,
card_style=Styles.PrimaryNeutral,
),
xy=(29.0, 11.0),
)
# Right Group: 5 API Reference Catalog Pages
cat_group = d.add(
NodeGroup(title="API リファレンスカタログモジュール (01 - 05)", padding=5.0),
xy=(88.0, 4.0),
)
mod01 = cat_group.add(
Node(
"01. プリミティブ・型変換・文字列形式\nz.string / number / iso / uuid",
width=68,
height=12.5,
icon=PhosphorIcon.TEXT_AA,
icon_size=5.5,
card_style=Styles.Neutral,
),
xy=(39.0, 71.0),
)
mod02 = cat_group.add(
Node(
"02. オブジェクト・コレクション・合成\nZodObject / Array / Union / Optional",
width=68,
height=12.5,
icon=PhosphorIcon.CUBE,
icon_size=5.5,
card_style=Styles.Neutral,
),
xy=(39.0, 55.0),
)
mod03 = cat_group.add(
Node(
"03. チェック・Refine・双方向 Codec\nz.check / refine / pipe / codec",
width=68,
height=12.5,
icon=PhosphorIcon.ARROWS_LEFT_RIGHT,
icon_size=5.5,
card_style=Styles.PrimaryNeutral,
),
xy=(39.0, 39.0),
)
mod04 = cat_group.add(
Node(
"04. パース・エラー・レジストリ・JSON Schema\nparse / ZodError / registry / toJSONSchema",
width=68,
height=12.5,
icon=PhosphorIcon.FILE_CODE,
icon_size=5.5,
card_style=Styles.Neutral,
),
xy=(39.0, 23.0),
)
mod05 = cat_group.add(
Node(
"05. Mini & Core エンジン・AOT コンパイラ\nzod/mini / $constructor / compile",
width=68,
height=12.5,
icon=PhosphorIcon.LIGHTNING,
icon_size=5.5,
style=Styles.WhiteBold,
text_style=Styles.WhiteBold.patch(text_size=10.5),
card_style=Styles.AccentFlat,
),
xy=(39.0, 7.0),
)
# Planar orthogonal bus channels (at x=78, x=71, and x=65) with zero crossings
sub_classic.fork([mod01, mod02, mod03, mod04], at_x=78.0, padding=1.5)
d.connect(sub_locales, mod04, padding=1.5).via((71.0, 53.0), (71.0, 27.0))
d.connect(sub_mini, mod05, style=Styles.AccentBold, padding=1.5).via((65.0, 34.0), (65.0, 11.0))
d.connect(sub_core, mod05, style=Styles.AccentBold, padding=1.5).via((65.0, 15.0), (65.0, 11.0))
d.draw(xy=(4.0, 2.0))
canvas.save()
packagezod (サブパスエクスポート一覧)#
Zod v4.6.7 は packages/zod/package.json で複数のサブパスエクスポートを提供しており、メソッドチェーン重視の標準開発(zod)、極限までバンドルサイズを削減する Tree-Shaking(zod/mini)、あるいはライブラリ作者向けの共通コアエンジン(zod/v4/core)を用途に応じて選択できます。
Source Code
from drawlib.canvas import save, setup
from drawlib.smartarts import Table
from drawlib.styles import Colors, Styles
from drawlib.text import text
setup(width=184, height=68, dpi=150)
text(
(92, 63.5),
"Zod v4.6.7 サブパスエクスポートと対象モジュール対応表",
style=Styles.DarkBold.patch(text_size=12.5),
)
table = Table(
cell_style=Styles.White,
text_style=Styles.Dark.patch(text_size=10.0),
header_cell_style=Styles.PrimaryFlat,
header_text_style=Styles.WhiteBold.patch(text_size=10.5),
border_style=Styles.MutedThin,
)
table.set_style_cell_evenodd(
even_color=Colors.Light,
even_text_style=Styles.Dark.patch(text_size=10.0),
odd_color=Colors.White,
odd_text_style=Styles.Dark.patch(text_size=10.0),
)
table.set_style_cell_header(
background_color=Colors.Primary,
text_style=Styles.WhiteBold.patch(text_size=10.5),
)
table.set_style_cell(
background_color=Colors.Light,
text_style=Styles.PrimaryBold.patch(text_size=10.0),
rows=[1, 2, 3, 4, 5, 6],
columns=[0],
)
data = [
["サブパス", "ソースエントリーポイント", "主なエクスポートシンボル", "バンドル特性・ランタイム挙動"],
["zod (.) / zod/v4", "src/v4/classic/external.ts", "z, ZodType, ZodObject, toJSONSchema", "初回初期化時にデフォルト en() を登録"],
["zod/mini", "src/v4/mini/external.ts", "z, ZodMiniType, check, minLength", "副作用なし・Tree-Shaking 最適化"],
["zod/v4/core", "src/v4/core/index.ts", "$constructor, $ZodType, $ZodRegistry", "ロケール非依存の共通コアエンジン"],
["zod/locales", "src/v4/locales/index.ts", "en, ja, de, fr, es, zhCN (全50言語)", "遅延ロード対応エラーメッセージ辞書"],
["zod/compile", "src/compile.ts", "compile, withParser, CompileOptions", "グローバル JIT / AOT フックを有効化"],
["zod/v3", "src/v3/index.ts", "Zod v3 互換エクスポート群", "v3 から v4 への段階的マイグレーション"],
]
table.draw_flexible(
xy=(4, 58),
column_widths=[32, 42, 52, 50],
row_heights=[8.0, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5],
data=data,
align="top_left",
)
save()
| インポートパス | ソースファイル | 主なエクスポート | 推奨ユースケース |
|---|---|---|---|
import { z } from "zod" |
packages/zod/src/index.ts |
ZodType, z.string(), z.object(), .parse(), .toJSONSchema() |
フル機能のメソッドチェーンとデフォルト英語ロケールを備えた標準アプリケーション開発。 |
import * as z from "zod/mini" |
packages/zod/src/mini/index.ts |
ZodMiniType, z.string(), z.check(), z.minLength(), z.parse() |
フロントエンドバンドルや Edge Worker など、厳格な Dead-Code Elimination(sideEffects: false)が求められる環境。 |
import * as core from "zod/v4/core" |
packages/zod/src/v4/core/index.ts |
$constructor, $ZodType, $ZodCheck, $ZodError, $ZodRegistry |
Classic と Mini の両方を受け入れるフレームワークアダプタや独自スキーマライブラリの構築。 |
import { ja } from "zod/locales" |
packages/zod/src/locales/index.ts |
50 言語のロケールファクトリ(en(), ja(), de(), fr(), es(), ...) |
z.config(ja()) によるバリデーションエラーメッセージの多言語対応(i18n)。 |
import "zod/compile" |
packages/zod/src/compile.ts |
compile(schema), withParser(schema, fn) |
高スループットが求められる検証パス向けの AOT / JIT JavaScript コード生成。 |
import * as z3 from "zod/v3" |
packages/zod/src/v3/index.ts |
旧 Zod v3 クラス・メソッド互換レイヤー | 大規模モノレポにおける Zod v3 から Zod v4 への段階的移行。 |
moduleカタログモジュール索引#
本 API リファレンスカタログは以下の 5 つのドメインモジュールで構成されています。
| モジュールページ | 対象スコープと網羅範囲 | 主要クラス・関数 |
|---|---|---|
| 01. プリミティブ・型変換・文字列フォーマット | スカラープリミティブ、数値/BigInt ビット幅フォーマット、z.coerce、トップレベル文字列フォーマット、z.iso.* 日時型 |
z.string, z.number, z.int, z.bigint, z.boolean, z.stringbool, z.date, z.literal, z.enum, z.templateLiteral, z.coerce, z.email, z.uuid, z.url, z.jwt, z.ipv4, z.ipv6, z.iso |
| 02. オブジェクト・コレクション・Union・ラッパー合成 | オブジェクトスキーマ、コレクションコンテナ、Union / Intersection 合成、オプショナル・デフォルト等のラッパー型 | ZodObject, z.object, z.strictObject, z.looseObject, ZodArray, ZodTuple, ZodRecord, ZodMap, ZodSet, ZodUnion, ZodXor, ZodDiscriminatedUnion, ZodIntersection, ZodOptional, ZodNullable, ZodDefault, ZodPrefault, ZodCatch, ZodReadonly, z.lazy, z.custom, ZodFunction, ZodPromise |
| 03. チェック・Refinement・Transform・双方向 Codec | 合成可能な $ZodCheck バリデータ、カスタム Refinement、単方向パイプライン、双方向 ZodCodec |
z.check, schema.check, schema.refine, schema.superRefine, schema.overwrite, z.transform, z.pipe, z.codec, z.invertCodec, z.preprocess, z.stringbool, 文字列/数値/サイズ各種チェック関数 |
| 04. パース・エラー整形・レジストリ・JSON Schema | 順方向/逆方向パース実行(parse/decode/encode)、エラー整形ユーティリティ、メタデータレジストリ、JSON Schema 変換 |
z.parse, z.safeParse, z.encode, z.decode, ZodError, $ZodIssue, z.treeifyError, z.prettifyError, z.flattenError, z.registry, z.globalRegistry, schema.meta, z.toJSONSchema, z.fromJSONSchema, z.config, z.locales |
05. zod/mini・zod/v4/core エンジン・AOT コンパイラ |
関数型 ZodMiniType ラッパー、$constructor プロトタイプ基盤、Standard Schema v1 統合、AOT コード生成 |
ZodMiniType, core.$constructor, core.$ZodType, core.$ZodCheck, ~standard, z.compile, z.withParser, ZodCompileAsyncError, ZodCompileUnsupportedError, z.infer, z.input, z.output |
ポータル間クロスリンク#
- Zod v4 ユーザーガイド (
https://zod.drawlib.com/): 実践的なチュートリアル、Zod v3 からの移行ガイド、フォーム・API・Codec の設計パターン。 - Zod v4 内部アーキテクチャ (
https://zod.drawlib.com/architecture/):$constructor、_zod内部構造、JIT オブジェクトコンパイル、JSON Schema プロセッサのアーキテクチャ解説。 - PNI501 セキュリティ・品質監査レポート (
https://zod.drawlib.com/reports/pni501/): セキュリティ評価、regexes.tsの ReDoS 耐性分析、プロトタイプ汚染防御、テストカバレッジ監査レポート。
interfaceZodType<Output, Input, Internals>#
クラシック zod エントリーポイントのすべてのスキーマは ZodType<Output, Input, Internals> を継承します。ZodType は core.$ZodType を拡張し、プロトタイプ上にメソッドチェーン用のインスタンスメソッドを提供します。
export interface ZodType<
out Output = unknown,
out Input = unknown,
out Internals extends core.$ZodTypeInternals<Output, Input> = core.$ZodTypeInternals<Output, Input>,
> extends core.$ZodType<Output, Input, Internals>
| プロパティ / メソッド群 | シグネチャ | 説明 |
|---|---|---|
.def / .type |
Internals["def"] / Internals["def"]["type"] |
不変のスキーマ定義オブジェクトおよび種別識別子文字列("string", "object", "union" 等)を参照します。 |
["~standard"] |
ZodStandardSchemaWithJSON<this> |
Standard Schema v1 仕様(validate, vendor: "zod", jsonSchema.input/output)を実装します。 |
.parse(data, params?) |
(data: unknown, params?: ParseContext) => Output |
順方向(forward)で同期バリデーションを実行し、Output 型の値を返すか ZodError をスローします。 |
.safeParse(data, params?) |
(data: unknown, params?: ParseContext) => ZodSafeParseResult<Output> |
例外をスローせず { success: true, data: Output } | { success: false, error: ZodError } を返します。 |
.parseAsync(data, params?) |
(data: unknown, params?: ParseContext) => Promise<Output> |
非同期 Refinement や非同期 Transform を含むスキーマを非同期バリデーションします。 |
.safeParseAsync(data, params?) / .spa |
(data: unknown, params?: ParseContext) => Promise<ZodSafeParseResult<Output>> |
例外をスローしない非同期パース(schema.spa は直接のエイリアス)。 |
.encode(data, params?) / .decode(data, params?) |
encode(Output): Input / decode(Input): Output |
双方向 Codec 実行。.encode() はパイプや Codec を逆方向(direction: "backward")に実行します。 |
.check(...checks) / .with(...checks) |
(...checks: ($ZodCheck<Output> | CheckFn<Output>)[]) => this |
スキーマをクローンし、1 つ以上のバリデーションまたは値変換チェックを追加します。 |
.refine(fn, params?) / .superRefine(fn, params?) |
カスタム述語 / 複数 Issue 追加検証 | スキーマのチェックパイプラインに同期・非同期のカスタム検証ロジックを追加します。 |
.optional() / .nullable() / .nullish() |
ラッパーコンビネータ | this を ZodOptional、ZodNullable、または ZodOptional<ZodNullable<this>> でラップします。 |
.default(val) / .prefault(val) / .catch(val) |
フォールバック値ラッパー | undefined 短絡評価(default)、入力側デフォルト注入(prefault)、パース失敗時リカバリ(catch)。 |
.pipe(target) / .transform(fn) |
ZodPipe<this, T> |
this の出力を target スキーマまたは ZodTransform ステージへ連結します。 |
.describe(text) / .meta(data?) / .register(reg, meta?) |
メタデータ & レジストリ登録 | z.globalRegistry または任意の $ZodRegistry に説明文や JSON Schema 用メタデータを登録します。 |
.toJSONSchema(params?) |
(params?: ToJSONSchemaParams) => JSONSchema |
スキーマを Draft-2020-12 / Draft-07 / Draft-04 / OpenAPI 3.0 の JSON Schema に直接変換します。 |
.brand<T, Dir?>() |
<T extends PropertyKey, Dir = "out">() => $ZodBranded<this, T, Dir> |
出力型・入力型・または双方向にコンパイル時の公称ブランド型($brand)を付与します。 |
typeSchemaParams とエラーカスタマイズ#
Zod v4 のすべてのスキーマコンストラクタおよびチェック関数は、Zod v3 の invalid_type_error / required_error を統合した単一の params 引数(string | { error?: string | $ZodErrorMap, ... })を受け取ります。
| パラメータ項目 | 型 | 適用範囲 | 挙動 |
|---|---|---|---|
params(文字列省略形) |
string |
全コンストラクタ・チェック関数 | util.normalizeParams() により自動的に { error: params } に正規化されます。 |
error |
string | $ZodErrorMap<Issue> |
全コンストラクタ・チェック関数 | 固定エラー文字列、または Issue ごとのコールバック (iss) => string | { message: string } | undefined。undefined を返すと有効なロケールにフォールバックします。 |
abort |
boolean |
.refine(), .superRefine(), 各種チェック |
true の場合、このチェックでエラーが発生した時点で後続チェックの実行を打ち切ります。 |
path |
PropertyKey[] |
.refine(), z.custom(), 各種チェック |
生成される Issue に相対プロパティパスを追加します。 |
when |
(payload: ParsePayload) => boolean |
.refine(), $ZodCheck |
指定したペイロードに対してチェックを実行するかどうかを判定する事前ガード関数。 |
import { z } from "zod";
// 1. 文字列省略形によるエラーメッセージ指定
const NameSchema = z.string("名前は文字列で指定してください").min(2, "2文字以上で入力してください");
// 2. `iss.input` を検査する動的エラーマップ関数
const AgeSchema = z.int({
error: (iss) =>
iss.input === undefined ? "年齢は必須です" : `整数の年齢が必要ですが ${typeof iss.input} が渡されました`,
});