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 Parameter | Default type | Description |
|---|---|---|
TProps extends ModelProps | - | - |
FromSnapshotOverride extends Record<string, any> | - | - |
ToSnapshotOverride extends Record<string, any> | - | - |
ModelIdPropertyName extends string | never | Model id property name. |
Constructors
Constructor
new BaseModel<TProps, FromSnapshotOverride, ToSnapshotOverride, ModelIdPropertyName>(data): BaseModel<TProps, FromSnapshotOverride, ToSnapshotOverride, ModelIdPropertyName>;
Creates an instance of a model.
Parameters
| Parameter | Type |
|---|---|
data | ModelPropsToTransformedCreationData<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
| Parameter | Type |
|---|---|
newId | ModelIdPropertyType<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
| Parameter | Type |
|---|---|
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.