# FormStore

> This document is the Markdown version of [formisch.dev/angular/api/FormStore/](https://formisch.dev/angular/api/FormStore/). For the complete documentation index, see [llms.txt](https://formisch.dev/llms.txt).

Form store interface that provides reactive access to the state of a form created with [`injectForm`](/angular/api/injectForm.md).

## Generics

- `TSchema` `extends FormSchema`

## Definition

- `FormStore`
  - `isSubmitting` `Signal<boolean>`
  - `isSubmitted` `Signal<boolean>`
  - `isValidating` `Signal<boolean>`
  - `isTouched` `Signal<boolean>`
  - `isEdited` `Signal<boolean>`
  - `isDirty` `Signal<boolean>`
  - `isValid` `Signal<boolean>`
  - `errors` `Signal<[string, ...string[]] | null>`

### Explanation

Every property of the form store is an Angular signal, so you call it as a function — both in your component class and in your template. Since the store is built from signals, it works with `OnPush` change detection and in zoneless applications without any subscriptions.

The `errors` property only contains validation errors at the root level of the form. These are errors from the root object schema validation itself, not errors from nested fields. To retrieve all validation errors from all fields across the entire form, use the [`getDeepErrors`](/methods/api/getDeepErrors.md) method instead.
