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.

Typeparam

Data Data type.

Typeparam

CreationData Creation data type.

Typeparam

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

$: 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.

[fromSnapshotOverrideTypeSymbol]: FromSnapshotOverride
[modelIdPropertyNameSymbol]: ModelIdPropertyName
[propsTypeSymbol]: TProps
[toSnapshotOverrideTypeSymbol]: ToSnapshotOverride

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

    • Optional options: {
          withData?: boolean;
      }
      • Optional withData?: 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.