typescript 动态参数-Typescript:对象类型可以作为参数传递吗?

2023-08-29 0 3,821 百度已收录

是的,有可能,答案就是泛型!

class ProjectGrid {
  constructor(
    private excelService: ExcelService,
    private commonService: CommonService,
    private gridService: GridService,
  ) { }
}

复制

但请注意,所有这些子类参数仅在编译时存在typescript 动态参数,您不能在函数中执行类似于 newGridExcel() 的操作; 你需要将单独的东西传递给构造函数并将它们保存在单独的数组中; 这些可能是类本身,也可能是创建此类对象的结构函数:

class ProjectGrid {
  constructor(
    private excelService: ExcelService,
    private commonService: CommonService,
    private gridService: GridService,
    private gridExcelFabric: () => GridExcel,
  ) { }
  onFileChange(evt: any) {
    /* some code */
    const header = Object.getOwnPropertyNames(this.gridExcelFabric());
  }
}

复制

另一个需要注意的是,您实际上可能需要类型参数(例如 GridService )不是任意类型typescript 动态参数,而是共享一些通用属性和技术。 如果您有一个描述此通用功能的类型(例如 GridServiceBase ),您可以执行以下操作:

class ProjectGrid {}

复制

此后,您可以假设所有 GridService 类型的对象也是 GridServiceBase 类型,并且您可以使用 GridServiceBase 的方法和属性。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 typescript typescript 动态参数-Typescript:对象类型可以作为参数传递吗? https://www.wkzy.net/game/180391.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务