Typescript:可以将对象类型作为参数传递吗?

分类: 365bet娱乐场官网注册 2026-07-01 13:50:43 作者: admin

我有一个组件Grid,它在项目的许多不同部分中被重用。这个Grid有一个可配置的列和许多函数。因此,在我的项目中,我将有Grid-A,Grid-B,Grid-C等等,它们将使用Grid。

Grid-A、Grid-B等等中的代码都非常相似,唯一的区别是网格使用的对象类型。

例如,在Grid-A组件中,我将具有以下构造函数

代码语言:javascript复制constructor(private excelService: ExcelService, private commonService: CommonService, private gridAService: GridAService) { }

onFileChange(evt: any) {

/* some code */

const header: string[] = Object.getOwnPropertyNames(new GridAExcel());

}

initialiseGrid(data: GridADto) {

/* some code */

}在Grid-B中,我将拥有

代码语言:javascript复制constructor(private excelService: ExcelService, private commonService: CommonService, private gridBService: GridBService) { }

onFileChange(evt: any) {

/* some code */

const header: string[] = Object.getOwnPropertyNames(new GridBExcel());

}

initialiseGrid(data: GridBDto) {

/* some code */

}由于函数相同,但它具有不同的参数类型(GridAService与GridBService、GridAExcel与GridBExcel、GridADto与GridBDto),因此我想创建另一个组件来桥接Grid和Grid-A/Grid-B,将其命名为<代码>d21。

因此,它将使用Project-Grid而不是使用Grid的Grid-A,而Project-Grid将使用Grid。在这个Project-Grid中,它应该接受动态参数类型,并且Grid-A会将GridAService、GridAExcel、GridADto传递给Project-Grid。

在Typescript中可以做到这一点吗?如果没有,那么实现类似功能的最佳方式是什么?