TSとTypeORMで汎用関数を作成するにはどうすればよいですか?
私はこのような複数の機能を持っています:
async getOrderName(id: number): Promise<string> {
const order = await this.conn.getRepository(Order).findOne(id);
return `${order.name}`;
}
async getServiceName(id: number): Promise<string> {
const service = await this.conn.getRepository(Service).findOne(id);
return `${service.name}`;
}
そして別の...別の...別の...
したがって、多くのエンティティで使用する1つの汎用関数を作成する必要があります
誰かがその関数を作成する方法を教えてもらえますか?
ダックタイピングを利用して、機能を一般化できるはずですEntityTarget
。
interface NamedThing {
name: string
}
async getName<Entity extends NamedThing>(id: number, target: EntityTarget<Entity>): Promise<string> {
const named = await this.conn.getRepository<Entity>(target).findOne(id);
return `${named && named.name}`;
}
// equivalent calls are now `getName(id, Order)`, `getName(id, Service)`, etc.
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加