Zodの検証の前後に変換する関数の使い分け
検証前に変換する
検証のために変換する感じ
unknown値をprimitive型に変換できるか検証して、後続に渡す
code:ts
const schema = z.coerce.string();
schema.parse("tuna"); // => "tuna"
schema.parse(12); // => "12"
schema.parse(true); // => "true"
code:ts
const schema = z.coerce.string().max(10)...
const schema = z.preprocess(String, z.string().max(10)...)
unknown値を変換して、後続に渡す
検証前に任意の変換ができる
z.coerce.string()でできない例なら、例えば、全角文字列を半角文字列に変換してから、後続の検証を行う、とか
検証後に変換する
検証後に内部にわたすために変換する感じ
z.string()などのprimitive値で検証後に、変換する