[英]How can i apply an interface to an anonymous callback function in typescript
我有一个看起来像这样的界面
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);
});
但是我收到一个错误消息说,当我添加接口时,如果返回类型不为空,则函数必须返回某些内容
(err, response): CallBackHandler => {
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);
你可以有类似的东西
request({
url: url,
method: "GET",
withCredentials: false,
json: true,
headers: headers
}, (err: Error, response: {statusCode: number, body: object}) => {
this.handleResponse(err, response, resolve, reject);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.