Typescript和Node.js中的HTTP服务器错误处理程序

我正在为我的后端代码库转换Typescript,但是在收听http服务器错误事件时,我遇到了一个关于[ts]属性的问题syscall在错误时不存在.我认为Error类型在这里错误的,但显然Node.js不提供此回调函数错误类型.任何人都可以帮我正确的错误类型?

const http = require('http');
const server = http.createServer((req,res) => {
  res.writeHead(200,{'Content-Type': 'text/plain'});
  res.write('Hello World!');
  res.end();
})

server.listen(3000);
server.on('error',onError);

function onError(error: Error) {
  // [ts] property syscall does not exist on error
  if (error.syscall !== 'listen') {
    throw error;
  }
}

解决方法

尝试将错误变量的类型从Error更改为NodeJS.ErrnoException.此类型是扩展基本Error接口并添加syscall属性的接口.

资料来源:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/node/index.d.ts#L401

export interface ErrnoException extends Error {
    errno?: number;
    code?: string;
    path?: string;
    syscall?: string;
    stack?: string;
}

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...