定义函数的接口,我无法访问该声明

时间:2017-01-22 07:47:09

标签: javascript node.js typescript typescript2.0

有没有办法定义函数参数采用哪些参数和哪些类型的参数。例如:

enter image description here

我想使用TypeScript来声明boundTransportFn的接口。该参数的类型是一个函数,但是如何使用TypeScript来定义函数采用的参数?

重要提示:此功能(boundTransportFn)是我无法访问的用户提供的功能。换句话说,我无法访问boundTransportFn声明,我只有参数

2 个答案:

答案 0 :(得分:2)

是的,有:

interface BoundFunc {
  // Put your definition here
}

// Then, somewhere else:
export class MyClass {

  myMethod(boundTransportFn: BoundFunc) {
    return function(boundTransportFn) {
      // ...
    }
  }

}

请注意,这是直接来自official Typescript handbook。 ; - )

所以,按照你的例子:

MyClass.myMethod()

BoundFunc的用户必须遵守{{1}}界面。

答案 1 :(得分:1)

我不确定我是否正确理解了这个问题,但是这里是你如何声明一个带有两个参数的函数的参数 - anystring - 然后返回void (这就是我认为当我查看你的代码时函数的类型):

return function (boundTransportFn: (a: any, key: string) => void) {
}

另请参阅handbook

中的“编写函数类型”部分