Javascript 如何将接口应用于typescript中的匿名回调函数

Javascript 如何将接口应用于typescript中的匿名回调函数,javascript,typescript,typescript-typings,Javascript,Typescript,Typescript Typings,我有一个这样的界面 interface CallBackHandler{ (err: Error, response: {statusCode: number, body: object}):void } 我想把这个接口应用到这个函数的回调中 request({ url: url, method: "GET", withCredentials: false, json: true, headers: headers }, (err, res

我有一个这样的界面

interface CallBackHandler{
 (err: Error, response: {statusCode: number, body: object}):void
}
我想把这个接口应用到这个函数的回调中

    request({
    url: url,
    method: "GET",
    withCredentials: false,
    json: true,
    headers: headers
  }, (err, response) => {
    this.handleResponse(err, response, resolve, reject);
  });
但是当我添加接口时,如果返回类型不是void,我会得到一个错误,说函数必须返回一些东西

(err, response): CallBackHandler => {
    this.handleResponse(err, response, resolve, reject);
  }

应用此接口的正确方法是什么?

您可以使用以下内容

request({
  url: url,
  method: "GET",
  withCredentials: false,
  json: true,
  headers: headers
}, (err: Error, response: {statusCode: number, body: object}) => {
  this.handleResponse(err, response, resolve, reject);
});
如果
request()
已具有类型签名:

function request(options, callback: CallBackHandler) {
   ...
}
那么您不需要做任何事情,因为您提供的回调将被相应地进行类型检查

如果该函数尚未具有该类型签名,并且您希望手动将回调强制转换为
CallBackHandler
,则需要将回调函数包装在括号中并强制转换该表达式,如下所示:

request({
    ...etc
}, ((err, response) => {
    this.handleResponse(err, response, resolve, reject);
}) as CallBackHandler);