我有下一個代碼:
import axios, {AxiosError} from "axios";
try {
some request
} catch(err:AxiosError) {
console.log(error.response) //doesnt work
console.log(error.response?.data?.message) //doesnt work
if(error.response?.data?.statusCode === 401) {
logout()
}
}
我無法在打字稿的原因內檢查狀態代碼如何在不訴諸任何型別的情況下正確描述錯誤型別?我找不到人們如何在打字稿中處理這個錯誤,也許我遺漏了什么
uj5u.com熱心網友回復:
Typescript 無法驗證任意代碼可能拋出哪些型別的值。所以直到最近,錯誤必須是型別any。
} catch (err: any) {
從 4.0 版開始,打字稿還允許unknown.
} catch (err: unknown) {
不支持其他任何內容。如果你想要更具體的東西,你要么需要撰寫代碼來縮小拋出的東西的型別,要么你需要使用型別斷言。請記住,型別斷言是一種告訴打字稿“我知道的比你多,所以不要檢查我的作業”的方式。如果你斷言它是一個 AxiosError,但它實際上可能是別的東西,打字稿不能向你指出那個錯誤。
catch (err: unknown) {
const error = err as AxiosError;
//...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/317160.html
