Express Server的错误处理程序参数类型?

时间:2019-01-27 06:29:03

标签: typescript express

我正在将我的Express服务器迁移到Typescript。 参见下面的最小示例。

我的问题是要分配给错误处理程序handleServerErrors的参数的类型。

如果我将其定义为Error,则tsc会抱怨error.code不是Error的一部分。因此,我继续使用any。 似乎tsc正在采用Error的js定义,而不是nodejs的定义。 是的,我已经安装了@types/node

import express = require("express");

const handleServerErrors = (error: any) => {
    if(error.code === "EADDRINUSE") {
        console.log("\nServer already running.\n");
    }
    else {
        console.error(error);
        throw error;
    }
};


const app = express();
app
    .listen(4400, () => console.log("Running")
    .once("error", handleServerErrors);

1 个答案:

答案 0 :(得分:0)

将第三行更改为: const handleServerErrors = (error: NodeJS.ErrnoException) => {

不太明显。