gpt4 book ai didi

javascript - 如何在 TS 和 TypeORM 中创建泛型函数?

转载 作者:行者123 更新时间:2023-12-05 02:04:47 25 4
gpt4 key购买 nike

如何在 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}`;
}

还有一个……另一个……另一个……

所以,我需要创建一个通用函数来与许多实体一起使用

谁能告诉我如何创建该函数?

最佳答案

您应该能够利用鸭子类型来概括 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.

关于javascript - 如何在 TS 和 TypeORM 中创建泛型函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64071522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com