# TerminalFieldBinding

Source: /tuil/docs/reference/packages/form/api/terminal-field-binding
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 TerminalFieldBinding<T> extends TerminalFieldState<T> {
  readonly setValue: (
    value: T,
    options?: { readonly validate?: boolean; readonly signal?: AbortSignal },
  ) => Promise<TerminalFieldState<T>>;
  readonly blur: (signal?: AbortSignal) => Promise<TerminalFieldState<T>>;
  readonly validate: (
    trigger?: ValidationTrigger,
    signal?: AbortSignal,
  ) => Promise<TerminalFieldState<T>>;
  readonly reset: (value?: T) => void;
  readonly serialize: (redactSecrets?: boolean) => T | "[REDACTED]";
  readonly subscribe: (observer: () => void) => () => void;
}
```

## Members [#members]

| Member         | Type                                                                                                                                | Required | Description                                                                                                                                                                  | Related types                                                                                                                                               |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `setValue`     | `(value: T, options?: &#123; readonly validate?: boolean; readonly signal?: AbortSignal; &#125;) => Promise<TerminalFieldState<T>>` | Yes      | The `setValue` member uses the `(value: T, options?: &#123; readonly validate?: boolean; readonly signal?: AbortSignal; &#125;) => Promise<TerminalFieldState<T>>` contract. | [`TerminalFieldState`](/tuil/docs/reference/packages/form/api/terminal-field-state)                                                                              |
| `blur`         | `(signal?: AbortSignal) => Promise<TerminalFieldState<T>>`                                                                          | Yes      | The `blur` member uses the `(signal?: AbortSignal) => Promise<TerminalFieldState<T>>` contract.                                                                              | [`TerminalFieldState`](/tuil/docs/reference/packages/form/api/terminal-field-state)                                                                              |
| `validate`     | `(trigger?: ValidationTrigger, signal?: AbortSignal) => Promise<TerminalFieldState<T>>`                                             | Yes      | The `validate` member uses the `(trigger?: ValidationTrigger, signal?: AbortSignal) => Promise<TerminalFieldState<T>>` contract.                                             | [`TerminalFieldState`](/tuil/docs/reference/packages/form/api/terminal-field-state), [`ValidationTrigger`](/tuil/docs/reference/packages/form/api/validation-trigger) |
| `reset`        | `(value?: T) => void`                                                                                                               | Yes      | The `reset` member uses the `(value?: T) => void` contract.                                                                                                                  | —                                                                                                                                                           |
| `serialize`    | `(redactSecrets?: boolean) => T \| "[REDACTED]"`                                                                                    | Yes      | The `serialize` member uses the `(redactSecrets?: boolean) => T \| "[REDACTED]"` contract.                                                                                   | —                                                                                                                                                           |
| `subscribe`    | `(observer: () => void) => () => void`                                                                                              | Yes      | The `subscribe` member uses the `(observer: () => void) => () => void` contract.                                                                                             | —                                                                                                                                                           |
| `name`         | `string`                                                                                                                            | Yes      | The `name` member uses the `string` contract.                                                                                                                                | —                                                                                                                                                           |
| `value`        | `T`                                                                                                                                 | Yes      | The `value` member uses the `T` contract.                                                                                                                                    | —                                                                                                                                                           |
| `initialValue` | `T`                                                                                                                                 | Yes      | The `initialValue` member uses the `T` contract.                                                                                                                             | —                                                                                                                                                           |
| `errors`       | `readonly string[]`                                                                                                                 | Yes      | The `errors` member uses the `readonly string[]` contract.                                                                                                                   | —                                                                                                                                                           |
| `touched`      | `boolean`                                                                                                                           | Yes      | The `touched` member uses the `boolean` contract.                                                                                                                            | —                                                                                                                                                           |
| `dirty`        | `boolean`                                                                                                                           | Yes      | The `dirty` member uses the `boolean` contract.                                                                                                                              | —                                                                                                                                                           |
| `validating`   | `boolean`                                                                                                                           | Yes      | The `validating` member uses the `boolean` contract.                                                                                                                         | —                                                                                                                                                           |
| `disabled`     | `boolean`                                                                                                                           | Yes      | The `disabled` member uses the `boolean` contract.                                                                                                                           | —                                                                                                                                                           |
| `readOnly`     | `boolean`                                                                                                                           | Yes      | The `readOnly` member uses the `boolean` contract.                                                                                                                           | —                                                                                                                                                           |
| `valid`        | `boolean`                                                                                                                           | Yes      | The `valid` member uses the `boolean` 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]

* [`TerminalFieldState`](/tuil/docs/reference/packages/form/api/terminal-field-state)
* [`ValidationTrigger`](/tuil/docs/reference/packages/form/api/validation-trigger)

## 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)
