2017-06-19 16 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) { 
    // ... 
    } 
} 

また、あなたもvalidateFormat

のための面倒なメソッドシグネチャを避けるために

declare type gridFormatMethodType = typeof igrid.gridFormat 

以下のようなメソッドの型を宣言することを

validateFormat(validator: gridFormatMethodType){ ... } 

これが役に立ちます。

関連する問題