Класс, экземпляры которого представляют в runtime-значения полей heap-таблиц, объявленных через Heap.GenericLink.
Предоставляет удобный интерфейс для работы со ссылкой.
Использование этого класса отдельно, вне значения поля таблицы, не несёт никакой пользы и не поддерживается.
type*: string
Идентификатор таблицы, на запись которой указывает данная ссылка. Совпадает со свойством type соответсвующей таблицы.
id: string
Уникальный идентификатор конкретной записи, на которую указывает данное значение поля.
get(ctx: app.Ctx): Promise<HeapObject>
"Синтаксический сахар" к выполнению запроса getById к целевой таблице с целевым идентификатором. Возвращает heap-объект, на который указывает текущее значение ссылки.
В отличие от RefLink.get, возвращаемый объект имеет typescript-тип общего heap-объекта без привязки к конкретному типу таблицы, поскольку заранее не известно - на какую таблицу указывает ссылка. Для уточнения типа объекта рекомендуется использовать метод isMyRecord.
app.Ctx
getTargetTableRepo(ctx: app.Ctx): Promise<HeapTableRepo>
Вовзращает репозиторий таблицы, на которую указывает текущее значение поля. Обратите внимание, что метод асинхронный.
app.Ctx
Выяснение названия объекта, на основе которого была создана задача.
const Tasks = Heap.Table('tasks', {
title: Heap.String(),
basedOn: Heap.GenericLink(),
})
const task = await Tasks.getById(ctx, req.params.id)
const basedOn = await task.basedOn.get(ctx)
const baseOnDisplayName = Orders.isMyRecord(baseOn)
? 'Order #' + basedOn.num
: Tasks.isMyRecord(basedOn)
? 'Task ' + basedOn.title
: 'Unexpected based-on object ' + task.basedOn.type + ' ' + task.basedOn.id