我想启动一个基于通用类型的 TypeORM 存储库。
例如:
import { Connection, Repository } from 'typeorm';
export class GenericService<T> {
private repository: Repository<T>;
constructor(connection: Connection) {
this.repository = connection.getRepository(T);
// 'T' only refers to a type, but is being used as a value here.ts(2693)
}
public async list(): Promise<T[]> {
return await this.repository.find();
}
}
但我无法将泛型类型传递给 ORM 存储库工厂。
'T' 仅指类型,但在这里被用作值。ts(2693
如何基于通用类型创建此通用服务?
附言。我用 C# 确实做到了这一点,而且效果非常好。它节省了我很多时间
您不能在 Typescript 中使用类型作为值,因此您需要使用泛型来对值进行类型检查:
import { Connection, Repository } from 'typeorm';
export class GenericService<T> {
private repository: Repository<T>;
constructor(connection: Connection, repo: T) {
this.repository: T = connection.getRepository(repo);
}
public async list(): Promise<T[]> {
return await this.repository.find();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)