如何使用打字稿中物件鍵的索引獲取屬性?
盡管在 TypeScript 上出現錯誤,但代碼仍能正常作業。
我的代碼
const payments = {
KEY1: {prop1: "prop1"},
KEY2: {prop1: "prop1"}
}
當我嘗試通過鍵值訪問時出現錯誤
const index = 0
const key = Object.keys(payments)[index]
const payment = payments[key] // ERROR HERE
元素隱式具有“any”型別,因為“string”型別的運算式不能用于索引型別“{}”。在型別“{}”.ts(7053) 上找不到帶有“字串”型別引數的索引簽名
payments是物件型別
uj5u.com熱心網友回復:
添加這個
const key = Object.keys(payments)[index] as keyof typeof payments;
當您沒有明確宣告型別時payments,打字稿推斷為特定的鍵(KEY1和KEY2)
并Object.keys()回傳該導線型別為字串錯誤。
我修改的上述行將告訴打字稿,key它將是付款鍵而不是字串。
您可以在此處閱讀有關此內容的更多資訊從型別創建型別
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/375612.html
標籤:打字稿
上一篇:用戶定義的型別保護功能和型別縮小
下一篇:沒有檢測到正確的型別
