📘
Zod の型推論機能(z.infer)
概要
Zod は、自分自身で定義したスキーマから静的型を自動推論できます。この推論された型は z.infer<> を使って抽出でき、好きなように使用できます。
基本的な型推論(Inferring types)
基本例
const Player = z.object({
username: z.string(),
xp: z.number(),
});
// 推論された型を抽出
type Player = z.infer<typeof Player>;
// 結果: { username: string; xp: number; }
// コードで使用
const player: Player = {
username: "billie",
xp: 100,
};
詳しい解説
1. なぜ typeof Player を使うのか?
const Player = z.object({ ... }); // これは値(スキーマオブジェクト)
type Player = z.infer<typeof Player>;
// ^^^^^^^^^^^^^^
// 値から型を取得
-
Playerは実行時の値(Zod スキーマオブジェクト) -
typeof Playerはその値の型を取得 -
z.infer<>はその型から実際のデータ型を推論
Discussion