Class BaseModel<TProps, FromSnapshotOverride, ToSnapshotOverride, ModelIdPropertyName>Abstract

Base abstract class for models. Use Model instead when extending.

Never override the constructor, use onInit or onAttachedToRootStore instead.

Data Data type.

CreationData Creation data type.

ModelIdPropertyName Model id property name.

Type Parameters

  • TProps extends ModelProps
  • FromSnapshotOverride extends Record<string, any>
  • ToSnapshotOverride extends Record<string, any>
  • ModelIdPropertyName extends string = never

Hierarchy (view full)

Constructors

Properties

[fromSnapshotOverrideTypeSymbol]: FromSnapshotOverride
[modelIdPropertyNameSymbol]: ModelIdPropertyName
[propsTypeSymbol]: TProps
[toSnapshotOverrideTypeSymbol]: ToSnapshotOverride
$: Flatten<{
    [k in string | number | symbol]: TProps[k]["$valueType"]
}>

Data part of the model, which is observable and will be serialized in snapshots. Use it if one of the data properties matches one of the model properties/functions.

$modelType: string

Model type name.

Accessors

Methods

  • Can be overridden to offer a reference id to be used in reference resolution. By default it will use the idProp if available or return undefined otherwise.

    Returns undefined | string

  • Parameters

    • Optionaloptions: {
          withData?: boolean;
      }
      • OptionalwithData?: boolean

    Returns string

  • Performs a type check over the model instance. For this to work a data type has to be declared as part of the model properties.

    Returns null | TypeCheckError

    A TypeCheckError or null if there is no error.