【发布时间】:2022-01-24 22:58:25
【问题描述】:
我正在与 NestJs 和 typeorm 一起使用 Postgres 数据库开发一项功能,以保存实体中已更新内容的 json(维护更新和插入日志)。
我正在尝试使用 typeorm 的实体订阅者功能,这对一个实体来说工作正常,但我想创建一个通用订阅者来监听所有更新和插入实体事件
我正在关注这个article
@EventSubscriber()
export class HistorySubscriber implements EntitySubscriberInterface<User> {
listenTo(): any {
return User ;
}
afterUpdate(event: UpdateEvent<User>): Promise<any> | void {
console.log(event.entity)
}
}
此代码只能监听用户实体的事件。他们是否有任何通用的方式来设计这个类,以便它监听所有实体。
我已经与 TS 中的 Generic 类一起工作
export class HistorySubscriber<T> implements EntitySubscriberInterface<T> {
listenTo(): any {
return T ;
}
afterUpdate(event: UpdateEvent<T>): Promise<any> | void {
console.log("event========================>",Object.keys(event),event.entity)
}
}
但出现此错误
'T' 只指一个类型,但在这里被用作一个值。ts(2693)
请提出解决方案或更好的方法。
【问题讨论】:
标签: typescript postgresql nestjs typeorm nestjs-config