我想了解如何使用快递与Typescript。我用表达式创建了一个漂亮的默认快速项目。在这里面,我觉得下面这个简单的方法,我不明白,也不会编译“为打字稿”err ['status']是做什么的?
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
事实上的错误原子打字稿及TSC给我is at line 31, file /Volumes/MonsterHD/mydev/expressgen/app.tsProperty 'status' does not exist on type 'Error'.
从其他研究中,我看到,有效转换为打字稿,使其工作如下所示:
app.use((req, res, next) => {
var err = new Error('Not Found');
err['status'] = 404;
next(err);
});
我很困惑。我相信我正在寻找Node中的Error类。我没有看到作为错误属性的状态。然而在JS中它起作用。但是在TS中它不是。这是为什么,err.status = 404
和err['status'] = 404
这几行的含义是什么?
困惑...没有一个是打字稿 - 它都是javascript,并且是一个快速404错误处理程序的示例。 '.status'不是错误的标准属性,但在JavaScript中,您可以轻松追加任何您喜欢的属性 - 在这种情况下,HTTP状态代码。 – brandonscript
谢谢......这有帮助!但是当我通过ts运行最上面的代码时,它提供了一个错误,因为在类型定义中,没有属性称为“状态”。那么,下面的咒语(err ['status'])呢?在js中它是否意味着相同? – pitosalas
听起来像无论是验证/编译你的JavaScript不允许你添加任意的属性到'Error'的实例。我的建议是......不要将任意属性添加到'Error'实例。 –