我想基于通用类型启动一个 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' only refers to a type, but is being used as a value here.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();
}
}
关于typescript - 如何基于通用类型 "T"初始化 TypeORM 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56720054/