跳到主要内容

getEntityStatus()

function getEntityStatus<T>(target): EntityStatus<T>;

Defined in: packages/rxdb/src/rxdb-utils.ts:99

获取实体状态。

Type Parameters​

Type Parameter
T extends EntityType

Parameters​

ParameterTypeDescription
targetobject实体实例

Returns​

EntityStatus<T>

实体状态对象

Throws​

RxDBError 当 target 不是已挂载的实体实例时

Remarks​

旧实现是 target && target[STATUS]:target 为假值时返回的是 target 自己 (null / undefined / 0 / ''),却声明成 EntityStatus<T>。 需要「探测」语义的只有 isRxDBEntity,它现在自己直接读槽位, 所以这里可以老老实实 fail-fast。

形参写 object 而不是实例类型:T 从形参根本推不出来(实例类型是条件类型, 属于不可推断位),从前的 InstanceType<T> 只是看着精确——它恒等于 any, 既没约束住入参、又让每个调用点的返回值继续摊开成 any。真正决定 T 的一直是 显式类型实参或默认约束,object 把这件事说清楚。