函数参数使用接口的函数签名

时间:2017-06-19 04:44:28

标签: typescript

我在界面中有一个函数签名,我想在某些类中用作回调参数的签名。

export interface IGrid {
    gridFormat(gridCell: GridCell, grid: Grid): boolean
}

我想做这样的事情:

validateFormat(validator: IGrid.gridFormat) {
    // ...
}

这可能吗?

2 个答案:

答案 0 :(得分:5)

  

这可能吗?

是,如下所示:

export interface IGrid {
    gridFormat(gridCell: GridCell, grid: Grid): boolean
}

function validateFormat(validator: IGrid['gridFormat']) { // MAGIC 
    // ...
}

答案 1 :(得分:1)

您可以尝试以下内容:

export interface IGrid {
  gridFormat(gridCell: GridCell, grid: Grid): boolean
}

declare let igrid: IGrid;

export class Test {
  validateFormat(validator: typeof igrid.gridFormat) {
    // ...
  }
}

此外,您还可以声明方法的类型,如下所示

declare type gridFormatMethodType = typeof igrid.gridFormat

避免使用validateFormat

的繁琐方法签名
validateFormat(validator: gridFormatMethodType){ ... }

希望这有帮助。