【发布时间】:2021-10-26 17:05:30
【问题描述】:
我正在尝试使用我的 Node/Express 应用程序迁移到 typescript。以前我的代码是:
//app.js
const error = new Error('Not Found');
error.status = 404;
当我尝试这个时:
//app.ts
const error = new Error('Not Found');
error.status = 404; // Property 'status' does not exist on type 'Error'.ts(2339)
我从developer.mozilla.org documentation 了解到,Error 构造函数具有以下可选参数:message、options、fileName、lineNumber - 所以我猜 status 不应该被允许?我想我是从 youtube 教程中复制的,所以我想这实际上不是一个好习惯?
【问题讨论】:
-
@HereticMonkey:我认为这是一个不同的用例,因为这本质上是关于修改全局范围。
-
@H.B.我认为这是相同的用例,因为它是关于向内置类型添加属性。但请选择:google.com/…。那里有 46k 条目。
-
@HereticMonkey 不同之处在于,对于全局,您需要调整类型信息以适应任何地方的属性,而这里是一种特殊的类实例,您通常不希望影响所有实例那堂课。但是,是的,可能有大量的重复项适合这个问题。
-
感谢@HereticMonkey - 我已经发布了我自己的解决方案,专门用于处理 404 错误代码。我假设您链接到的解决方案适用于更一般的用例。
标签: node.js typescript express error-handling