Open4

react-hook-form に対し zod と yup 試したときの調査と考察

kondeikondei

型生成機能が何のためにあるのか最初分かってなかった

先に自分でinterface定義してreact-hook-formのuseForm<TFieldValues> のTFieldValuesとして渡せばいいんだけど、それとschema型を合わせるのがちょっと面倒なので、schemaから型生成しちゃいたいね、そうすればpropertiy名も2回定義しなくて済むね、という文脈があると理解した

kondeikondei

useFormにyupを渡すと formのnameでも errorでも [x: string]: never みたいになって型がゴミになってしまった
zodは望み通りのがとれた

kondeikondei

今の所の差異の理解

yupを使う場合

yup.IntferTypeを使わないでTFieldValuesのinterfaceをちゃんと自分定義してuseFormに渡す方がいい
interfaceとschemaが乖離しないように頑張る

zodを使う場合

zod.inferが頭いいのでそれをTFieldValuesとしてuseFormに渡せばだいたい良い