Typescript使用變量字符串查找對象中的值時出錯

我試圖使用作為變量來定位對象中的值,基本上是console.log(myobj.name),但使用變量而不是名稱。

const myProperty = name:string
console.log(myObj[myProperty])

以下詳細信息(包括接口)

代碼運行,但我在VSCODE中得到以下錯誤。

Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Details'.

下面是代碼,最后一行是我得到typescript錯誤的代碼(使用嚴格類型)

interface Details {
  id:number,
  name:string,
  email:string
}

interface Items {
  [key: string]: Details[],
  } 

const items: Items = {
  "blackberry":[
    {
      id: 1,
      name: 'John Doe',
      email: 'john@doe.de'
    },{
      id: 2,
      name: 'Brad',
      email: 'lorem@ipsum.com',
  }
  ],
  "orange":[{
      id: 4,
      name: 'Barry',
      email: 'john@doe.de'
    }
  ]
}
const myName:string = "name" 
const myIx:string = "orange"
// console.log(items[myIx])
console.log(items[myIx][0].name)
console.log(items[myIx][0][myName]) // code runs but TS error here in VScode


? 最佳回答:

您應該為myName使用正確的類型:

const myName: keyof Details = "name" 

這還有一個好處,就是當您輸入錯誤時會出現編譯錯誤,例如,這將失敗:

const myName: keyof Details = "Name" 
主站蜘蛛池模板: 亚洲av午夜福利精品一区| 韩国一区二区视频| 亚洲色婷婷一区二区三区| 国产伦精品一区三区视频| eeuss鲁片一区二区三区| 久久国产精品一区免费下载| 一区二区中文字幕在线观看| 国模私拍福利一区二区| 免费一区二区三区| 99久久精品国产免看国产一区| 国产精品美女一区二区| 无码aⅴ精品一区二区三区| 亚洲一区二区三区免费在线观看 | 亚洲伦理一区二区| 精品免费国产一区二区| 亚洲爆乳精品无码一区二区| 国模吧一区二区三区| 国产免费一区二区视频| 亚洲AV无码一区二区二三区软件| 亚洲一区二区三区AV无码| 久久久99精品一区二区| 日本一区午夜艳熟免费| 精品国产日韩一区三区| 日本一区二区三区在线看| 性色AV一区二区三区无码| 无码一区二区三区免费视频| 久久精品无码一区二区三区不卡| 中文字幕日韩精品一区二区三区| 欧美亚洲精品一区二区| 无码国产精品一区二区高潮 | 亚洲综合av一区二区三区| 亚洲Av无码一区二区二三区| 国产成人精品第一区二区| 狠狠做深爱婷婷久久综合一区| 97久久精品无码一区二区| 日韩精品免费一区二区三区 | 成人免费视频一区| 视频一区视频二区在线观看| 亚洲国产激情一区二区三区| 国产成人无码一区二区在线播放 | 亚洲爆乳无码一区二区三区 |