Cuando se usa la forma de gancho de reacción con Typescript, hay un componente que envía algunos accesorios, siendo el register uno de ellos.
El problema es con su tipo cuando se declara en una interfaz:
export interface MyProps { title: string; ... register: (string | undefined) => void; } ¿Cuál es la forma correcta de declarar register aquí?
También probé con:
import { RegisterOptions } from 'react-hook-form'; export interface MyProps { title: string; ... register: RegisterOptions; }Puede recuperar el tipo de registro de UseFormReturn .
import { UseFormReturn } from 'react-hook-form'; export interface MyProps { title: string; register: UseFormReturn['register']; } En react-hook-form, recomendamos reenviar ref en lugar de pasar el método de register .
si está llamando a registrarse como accesorio en un componente personalizado o para usar en algún campo de entrada personalizado en Typescript, entonces puede usar el siguiente código.
En primer lugar, importe UseFormRegister y FieldValues desde 'react-hook-form'
import {UseFormRegister, FieldValues } from 'react-hook-form'Después de eso, defina el tipo de registro como
register: UseFormRegister<FieldValues>y boom, no necesita usar 'cualquier' tipo para registrarse.
Prueba esto.
import { RegisterOptions, UseFormRegisterReturn } from 'react-hook-form'; export interface MyProps { title: string; ... register: (name: string, options?: RegisterOptions) => UseFormRegisterReturn; }