Typescript-如何在回调函数中使用接口

时间:2019-05-29 00:48:34

标签: typescript interface callback

最近开始使用Typescript和我不确定的东西。

我正在使用npm软件包azure-storage,并专门调用方法doesBlobExist

blobService.doesBlobExist(containerName, blobName, (callbackResult: ErrorOrResult<BlobService.BlobResult>) => {
        //Want callbackResult.response here
});

doesBlobExist(函数来自npm软件包)如下所示:

doesBlobExist(container: string, blob: string, callback: ErrorOrResult<BlobService.BlobResult>): void;

ErrorOrResult类型是具有以下内容的接口:

interface ErrorOrResult<TResult> {
    (error: Error, result: TResult, response: ServiceResponse): void
}

我不确定该在哪里调用该函数,我希望可以使用该接口并执行以下操作:

callbackResult.response,因为它在界面中,但是callbackResult始终作为null返回。 一经查看,它就从界面中设置为error: Error

那么实际上是否有可能做我想做的事情,或者我必须使用该函数,如:

blobService.doesBlobExist(containerName, blobName, (error, result, response) => {
        //i.e. specify the 3 items directly in the interface
});

1 个答案:

答案 0 :(得分:0)

阅读您的问题,您可以使用上面编写的解决方案,您可以做类似的事情:

blobService.doesBlobExist(containerName, blobName, (error, result, response) => {
        if(error !== null){
           // Do something
           return;
        } 
        // here you can work with your response data
});

如果要避免错误,可以省略if循环,直接处理响应,但是必须在响应中插入所有可能的选项。

  

callbackResult.response,因为它位于接口中,但是callbackResult始终返回为null。在查看时,将其设置为错误:界面错误。

正如您所说,由于该函数未返回任何错误,因此得到的是空值。