gpt4 book ai didi

javascript - 我如何将接口(interface)应用于 typescript 中的匿名回调函数

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:08 25 4
gpt4 key购买 nike

我有一个看起来像这样的界面

interface CallBackHandler{
(err: Error, response: {statusCode: number, body: object}):void
}

我想将该接口(interface)应用于此回调

    request({
url: url,
method: "GET",
withCredentials: false,
json: true,
headers: headers
}, (err, response) => {
this.handleResponse(err, response, resolve, reject);
});

但是当我添加接口(interface)时,我得到一个错误,说如果返回类型不是 void,函数必须返回一些东西

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

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

最佳答案

如果 request() 已经有类型签名:

function request(options, callback: CallBackHandler) {
...
}

那么您不需要做任何事情,因为您提供的回调将进行相应的类型检查。

如果该函数没有已经有那个类型签名,并且您想手动将回调转换为CallBackHandler,那么您需要将回调函数包装在括号并强制转换该表达式,如下所示:

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

关于javascript - 我如何将接口(interface)应用于 typescript 中的匿名回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44581096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com