Skip to main content

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

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

Never override the constructor, use onInit or onAttachedToRootStore instead.

Template​

Data

Data type.

Template​

CreationData

Creation data type.

Extended by​

Type Parameters​

Type ParameterDefault typeDescription
TProps extends ModelProps--
FromSnapshotOverride extends Record<string, any>--
ToSnapshotOverride extends Record<string, any>--
ModelIdPropertyName extends stringneverModel id property name.

Constructors​

Constructor​

new BaseModel<TProps, FromSnapshotOverride, ToSnapshotOverride, ModelIdPropertyName>(data): BaseModel<TProps, FromSnapshotOverride, ToSnapshotOverride, ModelIdPropertyName>;

Creates an instance of a model.

Parameters​

ParameterType
dataModelPropsToTransformedCreationData<TProps>

Returns​

BaseModel<TProps, FromSnapshotOverride, ToSnapshotOverride, ModelIdPropertyName>

Properties​

[fromSnapshotOverrideTypeSymbol]​

[fromSnapshotOverrideTypeSymbol]: FromSnapshotOverride;

[modelIdPropertyNameSymbol]​

[modelIdPropertyNameSymbol]: ModelIdPropertyName;

[propsTypeSymbol]​

[propsTypeSymbol]: TProps;

[toSnapshotOverrideTypeSymbol]​

[toSnapshotOverrideTypeSymbol]: ToSnapshotOverride;

$​

readonly $: Flatten<{ [k in string | number | symbol]: ModelPropStoredValue<TProps[k]> }>;

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​

readonly $modelType: string;

Model type name.

Accessors​

$modelId​

Get Signature​

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 Signature​

set $modelId(newId): void;
Parameters​
ParameterType
newIdModelIdPropertyType<TProps, ModelIdPropertyName>
Returns​

void

Methods​

getRefId()​

getRefId(): string | undefined;

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​

string | undefined


toString()​

toString(options?): string;

Parameters​

ParameterType
options?{ withData?: boolean; }
options.withData?boolean

Returns​

string


typeCheck()​

typeCheck(): TypeCheckError | null;

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​

TypeCheckError | null

A TypeCheckError or null if there is no error.