ITナレッジ Typescript

【Typescript】実務で活躍!Zodの便利なメソッドについてご紹介

【Typescript】実務で活躍!Zodの便利なメソッドについてご紹介
悩む人
悩む人

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 job90%以上がリモート案件。高単価・優良案件が多い。
Midworksフルリモート案件だけに絞って検索可能。福利厚生が手厚い。
TECH STOCK72%がリモート案件。平均年収935万
PE-BANKマージンが低く、福利厚生が手厚い。地方の案件も豊富。
techadapt条件を満たせば確定申告時の税理士費用を負担してもらえる。

    きい(@kii_sfpy)

きい

エンジニア4年目のフリーランスデータエンジニア。

INTJ-A/5w4、最近はTypescriptが楽しい。

Python, Typescript, Salesforce, GCP, AWS, Tableau …etc

開発に関するご相談も、お気軽にご連絡ください! 

お問い合わせはコチラ

-ITナレッジ, Typescript
-,