Приветствую.
Есть следующий код:
type FormProps<T extends FieldValues> = {
defaultValues?: DefaultValues<T>;
onSubmit: (data: UnpackNestedValue<T>) => void;
children: ({ register, formState }: UseFormReturn<T>) => ReactNode;
};
export const Form = <T,>({ defaultValues, onSubmit, children }: FormProps<T>) => {
const { handleSubmit, reset, setValue, control, register } = useForm({ defaultValues });
return <form onSubmit={handleSubmit(onSubmit)}>{children({ register, formState })}</form>;
};
В настоящий момент, если передать в children только register и formState, тайпскрипт ругается, что я указал не все требуемые свойства (требуется объект, который возвращается хуком useForm).
Как написать тип свойства children, чтобы ему требовались только некоторые свойства объекта UseFormReturn?
Именно требовались. Partial> не подходит.
Очевидно, что можно явно указать тип каждому требуемому свойство:
...
children: ({ register, formState }: { register: UseFormRegister<T>, formState: FormState<T> }) => ReactNode;
...
Но можно ли как-то получить тип из существующего типа UseFormReturn?
Плейграунд