繁体   English   中英

为函数定义接口,我无权访问声明

[英]Define Interface for function, for which I do not have access to the declaration

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

在此处输入图片说明

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

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

就在这里:

interface SearchFunc {
    (source: string, subString: string): boolean;
}

let mySearch: SearchFunc;
mySearch = function(source: string, subString: string) {
    let result = source.search(subString);
    return result > -1;
}

请注意,这是直接来自官方 Typescript 手册 ;-)

所以,按照你的例子:

interface BoundFunc {
  // Put your definition here
}

// Then, somewhere else:
export class MyClass {

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

}

MyClass.myMethod()用户必须遵守BoundFunc接口。

我不确定我是否正确理解了这个问题,但这里是如何声明一个参数,该参数是一个函数,该函数采用两个参数 - anystring - 并返回void (这就是我认为函数的类型应该是什么,当我看在您的代码中):

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

另请参阅手册中的“编写函数类型”部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM