Coo*_*oop 15 javascript node.js express typescript
目前正在将我的项目转换为使用 Typescript。我以前在 Node 中启动 Express 的工作代码如下所示:
server.listen(port, (error) => {
if (error) throw error;
console.info(`Ready on port ${port}`);
});
Run Code Online (Sandbox Code Playgroud)
有了这个,我现在得到一个打字稿错误:
Argument of type '(error: any) => void' is not assignable to parameter of type '() => void'.
Run Code Online (Sandbox Code Playgroud)
我试过为参数分配一个类型,例如error: Errororerror: any但这并不能解决问题。我在这里做错了什么?
另外,由于我是 Typescript 的新手,虽然我已经找到了大量通常用于学习 Typescript 的资源,但是否有任何地方我应该知道如何在更特定于 npm 包的场景中处理 Typescript?
Jon*_*lms 17
没有error¹。
server.listen(port, () => {
console.info(`Ready on port ${port}`);
});
Run Code Online (Sandbox Code Playgroud)
要侦听错误,请使用server.listen(port).on("error", /*...*/)²。
¹:文档非常嵌套:
该快递文档说,这
此方法与 Node 的 http.Server.listen() 相同。
现在这些文档说,这htt.Server.listen等于Net.server.listen.
而那接着说:
这个函数是异步的。当服务器开始侦听时,将发出 'listening' 事件。最后一个参数回调将被添加为 'listening' 事件的监听器。
现在,“listening”事件似乎没有引发任何错误。
²:这是我在Express issuetracker 中找到的推荐方式。
请注意,在大多数情况下,您不想处理错误,如果服务器崩溃,很可能最好的选择是重新启动整个过程。