Skip to main content

Abstract Class: Ref<T>

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

Extends​

  • BaseModel<{ id: TypedMaybeOptionalModelProp<IdentityType<string>>; }, never, never, never, this> & Omit<{ id: string; }, BaseModelKeys> & object

Type Parameters​

Type Parameter
T extends object

Constructors​

Constructor​

new Ref<T>(data): Ref<T>;

Parameters​

ParameterType
dataModelPropsToTransformedCreationData<{ id: TypedMaybeOptionalModelProp<IdentityType<string>>; }>

Returns​

Ref<T>

Inherited from​

Model({
/
Reference id.
/
id: tProp(typesString),
}).constructor

Properties​

[fromSnapshotOverrideTypeSymbol]​

[fromSnapshotOverrideTypeSymbol]: never;

Inherited from​

Model({
/
Reference id.
/
id: tProp(typesString),
}).[fromSnapshotOverrideTypeSymbol]

[modelIdPropertyNameSymbol]​

[modelIdPropertyNameSymbol]: never;

Inherited from​

Model({
/
Reference id.
/
id: tProp(typesString),
}).[modelIdPropertyNameSymbol]

[propsTypeSymbol]​

[propsTypeSymbol]: object;

id​

id: TypedMaybeOptionalModelProp<IdentityType<string>>;

Reference id.

Inherited from​

Model({
/
Reference id.
/
id: tProp(typesString),
}).[propsTypeSymbol]

[toSnapshotOverrideTypeSymbol]​

[toSnapshotOverrideTypeSymbol]: never;

Inherited from​

Model({
/
Reference id.
/
id: tProp(typesString),
}).[toSnapshotOverrideTypeSymbol]

$​

readonly $: object;

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.

id​

id: string;

Reference id.

Inherited from​

Model({
/
Reference id.
/
id: tProp(typesString),
}).$

$modelType​

readonly $modelType: string;

Model type name.

Inherited from​

Model({
/
Reference id.
/
id: tProp(typesString),
}).$modelType

id​

id: string;

Reference id.

Inherited from​

Model({
/
Reference id.
/
id: tProp(typesString),
}).id

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

Inherited from​

Model({
/
Reference id.
/
id: tProp(typesString),
}).$modelId

current​

Get Signature​

get current(): T;

The object this reference points to, or throws if invalid.

Returns​

T


isValid​

Get Signature​

get isValid(): boolean;

If the reference is currently valid.

Returns​

boolean


maybeCurrent​

Get Signature​

get maybeCurrent(): T | undefined;

The object this reference points to, or undefined if the reference is currently invalid.

Returns​

T | undefined

Methods​

forceUpdateBackRefs()​

abstract forceUpdateBackRefs(): void;

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


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

Inherited from​

Model({
/
Reference id.
/
id: tProp(typesString),
}).getRefId

toString()​

toString(options?): string;

Parameters​

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

Returns​

string

Inherited from​

Model({
/
Reference id.
/
id: tProp(typesString),
}).toString

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.

Inherited from​

Model({
/
Reference id.
/
id: tProp(typesString),
}).typeCheck