2017-06-19 52 views
3

我在接口中有一個函數簽名,我想用它作爲某些類中的回調參數的簽名。使用接口函數簽名的函數參數

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

我想要做這樣的事情:

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

這可能嗎?

回答

4

這可能嗎?如下所示

是:

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

function validateFormat(validator: IGrid['gridFormat']) { // MAGIC 
    // ... 
} 
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){ ... } 

希望這會有所幫助。