
悩む人
Zodをもっと高度に使いたい...
実務でもよく使う、主要なメソッドについていくつかご紹介しますね!

きい
この記事を書いた人

- エンジニア歴4年のフリーランスデータエンジニア
- 高卒工場勤務からエンジニア転職
- 3年目でフリーランスになり年収1000万↑達成
- フルリモ歴2年、2児の育児中
おすすめの エージェント | 特徴 | 詳しい解説は コチラ👇 |
---|---|---|
geechs job | ・大手企業との取引が多い ・リモート案件80%以上 | /geechs_job |
Midworks | ・クラウド会計ソフトfreeeの利用が無料 ・マージンが比較的低い | /midworks |
TECH STOCK | ・平均年収が935万円と高い ・フルリモート案件が72%以上 | /techstock |
PE-BANK | ・マージンが低く手取りが多い、福利厚生も充実 ・地方の案件も豊富に取り扱っている | /pe-bank |
techadapt | ・エージェント全員がエンジニア経験者 ・確定申告時の税理士報酬負担制度あり | /techadapt |
TypeScriptで安全なデータ処理を実現するために、Zodは複数の便利なメソッドを提供しています。
この記事では、これらのメソッドの使い方や実用例を詳細に解説します!
目次
主要なZodメソッドの解説
1. parse
- 概要: スキーマの型に基づいて、データを検証し、必要な場合は変換を行うメソッド。
- 利用シーン: 済みや変換後のデータを確実に出力したい場面。
import { z } from "zod";
const schema = z.object({
name: z.string(),
age: z.number(),
});
const data = { name: "Alice", age: 25 };
const result = schema.parse(data);
console.log(result);
// 出力: { name: 'Alice', age: 25 }
2. safeParse
- 概要:
parse
と似ているが、エラーをスローせず、成否結果をオブジェクトで返すメソッド。 - 利用シーン: 検証失敗時にプログラムを中断せずに実行したい場面。
const result = schema.safeParse(data);
if (result.success) {
console.log("成功", result.data);
} else {
console.error("失敗", result.error);
}
3. refine
- 概要: カスタムバリデーションルールを追加するメソッド。
- 利用シーン: スキーマに設定できない複雑な要件を検証する場面。
const schema = z.string().refine((val) => val.startsWith("A"), {
message: "値は'A'で始まる必要があります",
});
schema.parse("Apple"); // 成功
schema.parse("Banana"); // エラー
4. transform
- 概要: データを特定の形式に変換するメソッド。
- 利用シーン: データの型変換を必要とする場面。
const schema = z.string().transform((val) => val.toUpperCase());
console.log(schema.parse("hello")); // 出力: "HELLO"
5. optional
- 概要: 値を省略可能にするメソッド。
- 利用シーン: 必須でないフィールドを定義する場面。
const schema = z.object({
name: z.string(),
age: z.number().optional(),
});
console.log(schema.parse({ name: "Alice" })); // 出力: { name: "Alice" }
6. nullable
- 概要:
null
値を許可するメソッド。 - 利用シーン: データが
null
になる可能性がある場面
const schema = z.string().nullable();
console.log(schema.parse(null)); // 出力: null
7. default
- 概要: 値が指定されない場合に、デフォルト値を設定するメソッド。
- 利用シーン: 値が特定されない情報の初期値を指定する場面。
const schema = z.string().default("デフォルト値");
console.log(schema.parse(undefined)); // 出力: "デフォルト値"
8. catch
- 概要: スキーマに合致しない場合でも、デフォルト値を返すメソッド。
- 利用シーン: 検証エラーが発生してもプログラムを中断させたくない場合。
const schema = z.string().catch("デフォルト値");
console.log(schema.safeParse(undefined)); // 出力: "デフォルト値"
9. array
- 概要: 配列を定義するメソッド。
- 利用シーン: 配列内の要素を構造化したい場面。
const schema = z.array(z.string());
console.log(schema.parse(["Alice", "Bob"])); // 出力: ["Alice", "Bob"]
10. union
- 概要: 複数の型のいずれかを許可するメソッド。
- 利用シーン: 複数の値が情報として入力される可能性がある場面。
const schema = z.union([z.string(), z.number()]);
console.log(schema.parse("Alice")); // 出力: "Alice"
console.log(schema.parse(123)); // 出力: 123
11. enum
- 概要: 限定された値の集合を許可するメソッド。
- 利用シーン: 定義済みの文字列値のみを許可する場面。
const schema = z.enum(["Red", "Green", "Blue"]);
console.log(schema.parse("Red")); // 出力: "Red"
schema.parse("Yellow"); // エラー
12. pick / omit
- 概要: 既存のスキーマから一部のフィールドを選択または除外する。
- 利用シーン: スキーマの再利用性を高めたい場合。
const schema = z.object({
name: z.string(),
age: z.number(),
email: z.string(),
});
const picked = schema.pick({ name: true });
const omitted = schema.omit({ age: true });
console.log(picked.parse({ name: "Alice" })); // 出力: { name: "Alice" }
console.log(omitted.parse({ name: "Alice", email: "test@example.com" })); // 出力: { name: "Alice", email: "test@example.com" }
まとめ
Zodは複数の強力なメソッドを提供し、データ検証や変換のあらゆる要件に対応します。
これらのメソッドを組み合わせることで、安全性の高いアプリを構築することが可能になります!
リモート案件を探せる エージェント | 特徴 |
---|---|
geechs job | 90%以上がリモート案件。高単価・優良案件が多い。 |
Midworks | フルリモート案件だけに絞って検索可能。福利厚生が手厚い。 |
TECH STOCK | 72%がリモート案件。平均年収935万。 |
PE-BANK | マージンが低く、福利厚生が手厚い。地方の案件も豊富。 |
techadapt | 条件を満たせば確定申告時の税理士費用を負担してもらえる。 |