类 对象<T,RequiredProperties>

Realm 对象的基类。

例子

要定义具有所需nameage属性的Person类,请定义一个static schema

class Person extends Realm.Object<Person> {
_id!: Realm.BSON.ObjectId;
name!: string;
age!: number;
static schema: Realm.ObjectSchema = {
name: "Person",
primaryKey: "_id",
properties: {
_id: "objectId",
name: "string",
age: "int",
},
};
}

例子

如果使用@realm/babel-plugin :要定义具有必需nameage属性的类Person ,需要在构造类型参数时指定这些属性,以支持仅使用 Typescript 的模型定义:

class Person extends Realm.Object<Person, "name" | "age"> {
_id = new Realm.Types.ObjectId();
name: Realm.Types.String;
age: Realm.Types.Int;
static primaryKey = "_id";
}

对象模式

类型参数

T - 此类的类型(例如,如果您的类为Person ,则T也应为Person - 由于 TypeScript 的工作原理,此重复项是必需的)

类型参数

RequiredProperties - 使用new构造实例时所需的该类的任何属性的名称。 任何未指定的属性都是可选的,如果其他地方没有指定默认值,则默认为合理的 null 值。

类型参数

  • T =默认对象

  • RequiredProperties 扩展 keyof OmittedRealmTypes<t> =从不

构造函数

属性

允许值数组: 布尔
不对称?: 布尔

(可选)在使用@realm/babel-plugin时,如果使用了 Flexible Sync,则可以指定模式应单向同步。

嵌入式?: 布尔

使用@realm/babel-plugin时,可以选择指定模式为嵌入式模式。

主键?: 字符串

使用@realm/babel-plugin时,可以选择指定模式的主键。

方法

  • 返回字符串

    已弃用

    TODO:一旦放弃类型测试,就将其彻底删除。

  • 在所有相同类型的对象中唯一标识该对象的字符串。

    返回字符串

  • 添加侦听器callback ,当活动对象实例发生更改时将调用该侦听器。

    参数

    • 回调 : ObjectChangeCallback < T >

      发生更改时要调用的函数。

    • Optional keyPaths : string | string []

      指示与侦听器相关的更改的下限。 这是一个下限,因为如果添加了多个侦听器(每个侦听器都有自己的keyPaths ),这些键路径的并集将确定被视为与在该对象上注册的所有侦听器相关的更改。 换言之:如果存在具有不同键路径的其他侦听器,则侦听器触发的次数可能会超过键路径指定的次数。

    返回void

    抛出异常

    如果callback不是函数,则出现TypeAssertionError

    例子

    wine.addListener((obj, changes) => {
    // obj === wine
    console.log(`object is deleted: ${changes.deleted}`);
    console.log(`${changes.changedProperties.length} properties have been changed:`);
    changes.changedProperties.forEach(prop => {
    console.log(` ${prop}`);
    });
    })

    例子

    wine.addListener((obj, changes) => {
    console.log("The wine got deleted or its brand might have changed");
    }, ["brand"])

    注意

    添加侦听器是一项异步操作,因此首次调用回调以在添加侦听器时通知调用者。 因此,首次调用回调时,它将包含changes.changedProperties的空数组。

  • 返回[ string , unknown ] []

    对象属性的键/值对数组。

    已弃用

    请使用Object.entries()

  • 获取属性值的基础类型。

    参数

    • propertyName : string

      要检索其类型的属性的名称。

    返回字符串

    属性值的基础类型。

    抛出异常

    如果属性不存在,则出现错误。

  • 检查此对象是否未被删除以及是否属于有效 Realm 的一部分。

    返回布尔值

    true 如果可以安全地访问该对象,则返回false

  • 返回字符串[]

    对象属性名称的数组。

    已弃用

    请使用Object.keys()

  • 返回在指定关系中链接到此对象的所有对象。

    类型参数

    • T =默认对象

    参数

    • objectType : string

      链接到此对象类型的对象的类型。

    • propertyName : string

      引用此对象类型的对象的属性的名称。

    返回结果< 对象 < T , none > & T >

    链接到该对象的结果

    抛出异常

    如果关系无效,则抛出 AssertionError

  • 类型参数

    参数

    • objectType : Constructor < T >
    • propertyName : string

    返回结果< T >

  • 返回此对象的传入链接总数

    返回数字

    指向此对象的链接数。

  • 从此对象中删除所有侦听器。

    返回void

  • 从此对象中删除侦听器callback

    参数

    返回void

    抛出异常

    如果callback不是函数,则出现TypeAssertionError

  • JSON 序列化的普通对象表示形式。 使用循环 JSON 序列化库(例如@ungap/ Structured-cloneflatted )对具有循环结构的 Realm 实体进行字符串化。

    参数

    • Optional _ :字符串
    • Optional 缓存未知

    返回默认对象

    一个普通对象。

使用TypeDoc生成