Skip to main content

Types

All TypeScript types exported by mobx-form.

Core Types

FormModelArgs<T>

Arguments for createModel():

type FormModelArgs<T> = {
descriptors: Partial<Descriptors<T>>;
initialState?: Partial<T>;
options?: ThrowIfMissingFieldType;
};

Descriptors<T>

Maps field names to their descriptors:

type Descriptors<T> = {
[P in keyof T]: FieldDescriptor<T[P], T>;
};

FieldDescriptor<T, K>

See FieldDescriptor API for full documentation.

interface FieldDescriptor<T, K> {
waitForBlur?: boolean;
disabled?: boolean;
errorMessage?: string;
validator?: ValidateFn<T, K> | ValidateFn<T, K>[];
hasValue?: (value: T) => boolean;
value?: T;
required?: boolean | string;
autoValidate?: boolean;
validationDebounceThreshold?: number;
clearErrorOnValueChange?: boolean;
meta?: Record<string, any>;
}

Validator Types

ValidateFn<T, K>

The validator function signature:

type ValidateFn<T, K> = (
args: ValidateFnArgs<T, K>,
) => Promise<ValidatorResult> | ValidatorResult;

ValidateFnArgs<T, K>

Arguments passed to every validator:

type ValidateFnArgs<T, K> = {
field: Field<T, K>;
fields: FormModel<K>['fields'];
model: FormModel<K>;
value: Field<T, K>['value'];
};

ValidatorResult

What a validator can return:

type ValidatorResult = boolean | ResultObj | void;
  • true or void — field is valid
  • false — field is invalid (uses default error message)
  • { error: string } — field is invalid with a specific message
  • Alternatively, throw new Error('message') or return a rejected Promise

ResultObj

type ResultObj = { error: string };

ErrorLike

type ErrorLike = { message: string } | Error;

Option Types

SetValueFnArgs

Options for setValue() and related methods:

type SetValueFnArgs = {
resetInteractedFlag?: boolean;
} & CommitType;

CommitType

type CommitType = {
commit?: boolean;
};

ForceType

type ForceType = {
force?: boolean;
};

ThrowIfMissingFieldType

type ThrowIfMissingFieldType = {
throwIfMissingField?: boolean;
};

ResetInteractedFlagType

type ResetInteractedFlagType = {
resetInteractedFlag?: boolean;
};

Exported Values

ExportTypeDescription
createModelFunctionCreates a FormModel instance
createModelFromStateFunctionCreates a FormModel from a plain state object
FormModelClassThe form model class
FieldClassThe field class