When using @tanstack/react-form, the core form API is extended at type level with additional methods for React-specific functionality:
Field: FieldComponent<TFormData, TFormValidator>
Field: FieldComponent<TFormData, TFormValidator>
useField: UseField<TFormData>
useField: UseField<TFormData>
useStore: <TSelected = NoInfer<FormState<TFormData>>>(
selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,
) => TSelected
useStore: <TSelected = NoInfer<FormState<TFormData>>>(
selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,
) => TSelected
Subscribe: <TSelected = NoInfer<FormState<TFormData>>>(props: {
selector?: (state: NoInfer<FormState<TFormData>>) => TSelected
children: ((state: NoInfer<TSelected>) => ReactNode) | ReactNode
}) => JSX.Element
Subscribe: <TSelected = NoInfer<FormState<TFormData>>>(props: {
selector?: (state: NoInfer<FormState<TFormData>>) => TSelected
children: ((state: NoInfer<TSelected>) => ReactNode) | ReactNode
}) => JSX.Element
Note that TypeScript 5.0.4 and older versions will incorrectly complain if the selector method doesn't return the form's full state (state). This is caused by a bug in TypeScript, and you can safely ignore it with //@ts-expect-error directive.
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.