Typescript覆盖表达混合接口

时间:2017-05-09 17:26:34

标签: express typescript hybrid

我试图覆盖send类型的节点快速Response方法。 该方法的类型为Send,其定义如下:

interface Send {
    (status: number, body?: any): Response;
    (body?: any): Response;
}

我的目标是使用express添加响应发送的本地日志记录,但我无法实现此类型的实现,即使是像其他问题like this中解释的那样的函数。

1 个答案:

答案 0 :(得分:0)

该接口描述了具有两个签名的函数,您可以像这样实现它:

const fn: Send = (first?: any, second?: any) => {
    if (first && second) {
        // deal with (status: number, body: any)
    } else if (first) {
        // deal with (status: number) or (body: any)
    } else {
        // deal with ()
    }

    return new Response();
}