У меня есть следующий класс, который используется как сущность для объектно-реляционного маппера:
@Entity("MyEntity")
export class MyEntity {
@PrimaryGeneratedColumn()
id!: number;
@Column("varchar", { length: 2000 * 2 })
data!: string;
@CreateDateColumn()
created!: Date;
}
Теперь по какой-то причине большая часть моего кода не использует этот класс. Вместо этого в коде используется «модель» -интерфейс, который является свободным подмножеством этого класса:
export interface MyModel {
id: number;
data: string;
}
Проблема с этим подходом состоит в том, что интерфейсы модели могут легко выйти из синхронизации c с сущностями-классами. Это приводит к моему вопросу:
Как я могу статически обеспечить, чтобы все ключи свойств MyModel
также присутствовали в MyEntity
?