【发布时间】:2021-07-08 01:00:13
【问题描述】:
在我的项目中,我创建了 list.service.ts,它包含列表的任何功能,从从 API 加载 json 对象列表、将 API 结果映射到行、分页等等......
对于每个列表类型(用户、项目...),我用额外的数据、属性和功能扩展了这项服务。
export class UsersListService extends ListsService {...}
在扩展服务的所有变化中,API 结果格式(数据类型)发生变化。
我的 MapData 函数(通用)如下所示:
MapData(resultsData: any[], columns: NgListColumns[]): NgListDataRow[] {...}
用户列表服务中的函数如下所示:
MapData(resultsData: UserApiData[], columns: NgListColumns[]): NgListDataRow[] {...}
所以唯一的变化是 resultsData 的数据类型。
相同的更改将应用于其他一些功能。
我的问题:有什么方法可以将此数据类型作为主服务中的参数并自动应用于扩展服务?
现在我必须在服务扩展中重写所有这些函数,但这迫使我跟踪主服务中这些函数的任何更改,并修复所有扩展服务中这些函数的所有副本。
【问题讨论】: