typescript - TypeORM - 通用实体创建
问题描述
我试图在 CRUD 系统的上下文中概括我的实体创建系统,以避免冗余代码重复。
基类CrudController<T>
应提供一个通用方法createEntity(data)
,该方法创建并返回具有给定数据的实体。数据类型为Partial<T>
。
StateController
在我扩展的派生类中,CrudController<State>
我将其实现为:
protected createEntity(data: Partial<State>): Promise<State> {
const repository = getRepository(State);
const entity = repository.create(data);
return repository.save(entity);
}
...完美无缺。但是,当我尝试通过以下方式将其推广到基类中时:
protected createEntity(data: Partial<T>): Promise<T> {
const repository = getRepository(this.entityType);
const entity = repository.create(data);
return repository.save(entity);
}
...我遇到 TypeScript 抱怨没有重载与调用匹配。我知道签名Repository.create(...)
期望 aDeepPartial<T>
而不是 simple Partial<T>
,但这对于非泛化方法工作得很好,那么为什么不在这里呢?
我缺少的泛型是否有一些类型约束?
解决方案
推荐阅读
- javascript - Angular 组件与 Input() 的交互未同步
- c++ - Qt - 为 QML 定义全局函数
- r - 如何将文本文件中的“Inf”字符串转换为数字
- netsuite - Netsuite 脚本组合/合并多个语句
- javascript - Vue.js 中 JSON 对象的值
- node.js - 从Angular 5中的http请求获取数据
- python - 异常类型:MissingSchema / beautifulsoup
- c# - ASP.net WebAPI Post 方法在发布时返回 405
- python - Python 轮子包 Linux vs windows
- sqlite - 为什么生成的变量之间的 SQLite 条件不能正确比较?