Class Ref<T>Abstract

A reference model base type. Use customRef to create a custom ref constructor.

Type Parameters

  • T extends object

Hierarchy

Constructors

Properties

[fromSnapshotOverrideTypeSymbol]: never
[modelIdPropertyNameSymbol]: never
[propsTypeSymbol]: {
    id: MaybeOptionalModelProp<string>;
}

Type declaration

[toSnapshotOverrideTypeSymbol]: never
$: {
    id: string;
}

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.

Type declaration

  • id: string

    Reference id.

$modelType: string

Model type name.

id: string = ...

Reference id.

Accessors

  • get $modelId(): ModelIdPropertyType<TProps, ModelIdPropertyName>
  • Model internal id. Can be modified inside a model action. It will return undefined if there's no id prop set.

    Returns ModelIdPropertyType<TProps, ModelIdPropertyName>

  • set $modelId(newId): void
  • Parameters

    Returns void

  • get current(): T
  • The object this reference points to, or throws if invalid.

    Returns T

  • get isValid(): boolean
  • If the reference is currently valid.

    Returns boolean

  • get maybeCurrent(): undefined | T
  • The object this reference points to, or undefined if the reference is currently invalid.

    Returns undefined | T

Methods

  • Ensures back references for this ref are up to date. This only needs to be called if you need to get the most up to date back references while both still inside an action and while the reference is not a child of the same root than the target.

    Returns void

  • 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.