微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐