通常
特筆することは無い
type Type = //
オブジェクトから別の方を組み立てる
TypeScriptでオブジェクトの値を元に別の型を組み立てたい Loading...
バリデートライブラリを使う
zodなど。
その場合、型定義とzodのどちらを信頼できる唯一の情報源(SSOT)にするのかをしっかり決める。
二重管理になるとどこかでミスが出る。
Prismaなどから型定義ファイルを吐き出すなど、codegenされた型をSSOTにしないといけない場合がある。
その場合はzodと型定義間でミスマッチが出たらエラーになるように連携させる。
参考:schemeForType Utility functionを定義する
それ以外の場合(入力フォームから情報を取ったりなど)は、zodをSSOTにして、zod.infer
などで型定義を動的に作成するのが良い。
APIの定義自体を型定義として使用できるようにする