zod
const inputSchema = z.object({
aaa: z.number(),
bbb: z.string(),
});
type InputSchema = z.infer<typeof inputSchema>;
type Props = {};
export default function RandomStringForm({}: Props) {
const { register, handleSubmit, watch } = useForm<InputSchema>({
resolver: zodResolver(inputSchema as any), // <- bug after zod 3.22
});
const watchValue = watch();
const onSubmit: SubmitHandler<InputSchema> = (data) => {
console.log(data);
};
- z.infer로 타입을 생성할 수 있음
- InputSchema를 zod를 쓰지않을 때 form 타입 정의하는 것처럼 사용하면됨
as any
부분 조심 (타입 버그가 있는듯함)