首页 > 解决方案 > 如何从两个类似的函数中创建一个通用函数?

问题描述

我有两个相同的功能,但在不同的实体上工作,

    async getUserName(userId: number): Promise<string> {
        const user = await this.conn.getRepository(User).findOne(userId);
        return user .name;
    }

    async getOrderName(orderId: number): Promise<string> {
        const order = await this.conn.getRepository(Order).findOne(orderId);
        return order .name;
    }

如何在这两个函数的位置创建一个通用函数,它只接受实体和id数字,并像上述函数中的指南一样返回给定的名称?

附言。我正在使用打字稿和 typeorm

谢谢你的帮助

标签: javascripttypescriptoopgenericstypeorm

解决方案


您很可能会将两个函数之间的区别变成所述函数的参数

type TRepository = User | Order
async getName(id: number, rep: TRepository): Promise<string> {
    const entity = await this.conn.getRepository(rep).findOne(id);
    return entity.name;
}

推荐阅读