должен ли тип автора быть чем-то вроде числа | Пользователь
Отрицательный: для этого потребуется реализовать все в вашем веб-приложении, чтобы обрабатывать как регистр числа, так и регистр объекта, что приводит к большим накладным расходам на разработку и множеству возможных ошибок из-за ненужной повышенной сложности.
следует ли расширить интерфейс новыми свойствами (автор: пользователь, правопреемник: пользователь)
Да! Это правильное решение, связывающее непосредственно с объектом. Если у вас есть только идентификационный номер пользователя, пока вы не получите более подробную информацию, вы можете сохранить его в своем объекте следующим образом:
{
id: 1;
status: "BOOKED";
date: "10-05-2018";
...
user: {
id: 1;
}
}
Таким образом, ваш объект заявки может быть заполнен данными, а объект пользователя под объектом заявки может иметь только атрибут ID, пока данные не будут выбраны.
На данный момент я хотел бы отметить, не зная всего бизнеса, который вы хотите реализовать, что в вашем случае было бы более разумно организовать ваши объекты следующим образом:
export interface Ticket {
id: number;
status: ETICKET_STATUS_S;
...
}
export interface User {
id: number;
...
tickets: Ticket[];
}
, поскольку у пользователя может быть много билетов.