我想了解如何使用快遞與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'實例。 –