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

最后一个问题 :

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

还有另一个...另一个...另一个...

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

有人可以告诉我如何创建该功能吗?

concat:

您应该能够利用鸭子输入来泛化EntityTargets上的功能

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章