类 对象<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 值。

类型参数

构造函数

属性

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

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

嵌入式?: 布尔

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

主键?: 字符串

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

方法

  • 添加侦听器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的空数组。

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

    参数

    • propertyName : string

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

    返回字符串

    属性值的基础类型。

    抛出异常

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

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

    返回布尔值

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

使用TypeDoc生成