TypeScriptにおける値オブジェクトの表現

9837 ワード

メールアドレスが以下のルールを持つとすると、ルールに当てはまらない場合に例外を発生させることができます。

  • 値の型がStringである。
  • 値の最後が@int.dayである。

それぞれのルールをコードにする

メールアドレスは以下のように表現できます。

const email = "[email protected]"

システムではこのメールアドレスを検査する必要があります。何故なら、変数にはどんな値が入っているのか分からないからです。

例えばメールアドレスは以下のようなルールを満たしています。

  • 型がstringである。
  • 値に@マークが含まれる。

これらのルールを満たさない時、例外を発生させることができます。

// 型確認
if (  !email.includes("@") ) {
  throw new Error("エラー")
}
if (typeof email !== "string") {
  throw new Error("エラー")
}

zodを使って短く表現する