# TanStackFieldLike

Source: /tuil/docs/reference/packages/form/api/tan-stack-field-like
Locale: en

interface exported by @mwillbanks/tuil-form.



{/* Generated by tooling/docs/generate-reference.ts. */}

## interface [#interface]

Public interface exported by `@mwillbanks/tuil-form`.

```ts
export interface TanStackFieldLike<T> {
  readonly name: string;
  readonly state: {
    readonly value: T;
    readonly meta: {
      readonly errors: readonly unknown[];
      readonly isTouched: boolean;
      readonly isDirty: boolean;
      readonly isValidating: boolean;
    };
  };
  readonly handleChange: (value: T) => void;
  readonly handleBlur: () => void;
  readonly validate?: (
    cause: "change" | "blur" | "submit",
  ) => unknown | Promise<unknown>;
  readonly reset?: () => void;
  readonly store?: {
    readonly subscribe: (
      observer: () => void,
    ) => (() => void) | { readonly unsubscribe: () => void };
  };
}
```

## Members [#members]

| Member         | Type                                                                                                                                                                                          | Required | Description                                                                                                                                                                                                                         | Related types |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| `name`         | `string`                                                                                                                                                                                      | Yes      | The `name` member uses the `string` contract.                                                                                                                                                                                       | —             |
| `state`        | `&#123; readonly value: T; readonly meta: &#123; readonly errors: readonly unknown[]; readonly isTouched: boolean; readonly isDirty: boolean; readonly isValidating: boolean; &#125;; &#125;` | Yes      | The `state` member uses the `&#123; readonly value: T; readonly meta: &#123; readonly errors: readonly unknown[]; readonly isTouched: boolean; readonly isDirty: boolean; readonly isValidating: boolean; &#125;; &#125;` contract. | —             |
| `handleChange` | `(value: T) => void`                                                                                                                                                                          | Yes      | The `handleChange` member uses the `(value: T) => void` contract.                                                                                                                                                                   | —             |
| `handleBlur`   | `() => void`                                                                                                                                                                                  | Yes      | The `handleBlur` member uses the `() => void` contract.                                                                                                                                                                             | —             |
| `validate`     | `((cause: "change" \| "blur" \| "submit") => unknown \| Promise<unknown>) \| undefined`                                                                                                       | No       | The `validate` member uses the `((cause: "change" \| "blur" \| "submit") => unknown \| Promise<unknown>) \| undefined` contract.                                                                                                    | —             |
| `reset`        | `(() => void) \| undefined`                                                                                                                                                                   | No       | The `reset` member uses the `(() => void) \| undefined` contract.                                                                                                                                                                   | —             |
| `store`        | `&#123; readonly subscribe: (observer: () => void) => (() => void) \| &#123; readonly unsubscribe: () => void; &#125;; &#125; \| undefined`                                                   | No       | The `store` member uses the `&#123; readonly subscribe: (observer: () => void) => (() => void) \| &#123; readonly unsubscribe: () => void; &#125;; &#125; \| undefined` contract.                                                   | —             |

## Parameters [#parameters]

This declaration has no public members.

## Returns [#returns]

This declaration does not return a value.

## Throws [#throws]

No thrown errors are documented for this declaration.

## Related types [#related-types]

No package-local related types.

## Source [#source]

[View the secondary source reference](https://github.com/mwillbanks/tuil/blob/main/packages/form/src/index.tsx)

## Package [#package]

[@mwillbanks/tuil-form](/tuil/docs/reference/packages/form)
