Позволяет определить - принадлежит ли переданный heap-объект данной heap-таблице. Является также "typescript type guard", то есть приводит тип переденной "бесформенной" переменной к типу heap-объекта таблицы с её полями.
Принадлежность опрелеляется через сравнение системного поля heapType
у heap-объекта со свойством type таблицы.
table.isMyRecord(object)
Аргументы
any
Возвращаемое значение: boolean
true
, если переданная переменная является объектом с полем heapType
, со значением, совпадающим со свойством type у данной таблицы. Во всех остальных случаях - false
.
Определение типа записи, на которую указывает GenericLink-поле.
const Orders = Heap.Table('orders', {
customer: Heap.GenericLink(),
})
const Orgs = Heap.Table('orgs', {
name: Heap.String(),
})
const Persons = Heap.Table('persons', {
firstName: Heap.String(),
lastName: Heap.String(),
})
async function getCustomerDisplayName(ctx: app.Ctx, order: typeof Orders.T): Promise<string> {
const customer = await orders.customer.get(ctx)
if (Orgs.isMyRecord(customer)) {
return customer.name
} else if (Persons.isMyRecord(customer)) {
return customer.firstName + ' ' + customer.lastName
} else {
throw 'unsupported customer type ' + customer.heapType }
}