TypeScript遍歷對(duì)象屬性的問(wèn)題
一、問(wèn)題
比如下面的代碼:
type Animal = { name: string; age: number } const animal:Animal={ name:"dog", age:12 } function test(obj:Animal) { for (let k in obj) { console.log(obj[k])。//這里出錯(cuò) } } test(animal)
報(bào)錯(cuò):
二、解決辦法
1. 把對(duì)象聲明as any
function test(obj:Animal) { for (let k in obj) { console.log((obj as any)[k]) //不報(bào)錯(cuò) } }
這個(gè)方法直接繞過(guò)了typescript
的校驗(yàn)機(jī)制
2. 給對(duì)象聲明一個(gè)接口
type Animal = { name: string; age: number; [key: string]: any } const animal:Animal={ name:"dog", age:12 } function test(obj:Animal) { for (let k in obj) { console.log(obj [k]) //不報(bào)錯(cuò) } } test(animal)
這個(gè)可以針對(duì)比較常見(jiàn)的對(duì)象類型,特別是一些工具方法。
3. 使用泛型
function test<T extends object>(obj:T) { for (let k in obj) { console.log(obj [k]) //不報(bào)錯(cuò) } }
4. 使用keyof
function test(obj:Animal) { let k: (keyof Animal); for (k in obj) { console.log(obj [k]) //不報(bào)錯(cuò) } }
到此這篇關(guān)于TypeScript遍歷對(duì)象屬性的問(wèn)題的文章就介紹到這了,更多相關(guān)TypeScript遍歷對(duì)象屬性內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript中七種流行的開源機(jī)器學(xué)習(xí)框架
今天小編就為大家分享一篇關(guān)于JavaScript中五種流行的開源機(jī)器學(xué)習(xí)框架,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10JS觸摸屏網(wǎng)頁(yè)版仿app彈窗型滾動(dòng)列表選擇器/日期選擇器
這篇文章主要介紹了觸摸屏網(wǎng)頁(yè)版仿app彈窗型滾動(dòng)列表選擇器/日期選擇器的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10PHP:微信小程序 微信支付服務(wù)端集成實(shí)例詳解及源碼下載
這篇文章主要介紹了微信小程序 微信支付服務(wù)端集成實(shí)例詳解及源碼下載的相關(guān)資料,需要的朋友可以參考下2017-01-014個(gè)頂級(jí)開源JavaScript圖表庫(kù)
今天小編就為大家分享一篇關(guān)于4個(gè)頂級(jí)開源JavaScript圖表庫(kù),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-09-09前端AI機(jī)器學(xué)習(xí)在瀏覽器中訓(xùn)練模型
這篇文章主要為大家介紹了前端AI機(jī)器學(xué)習(xí)在瀏覽器中訓(xùn)練模型的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07關(guān)于Javascript閉包與應(yīng)用的詳解
這篇文章主要介紹了關(guān)于Javascript閉包與應(yīng)用的詳解,文中有非常詳細(xì)的代碼示例.對(duì)正在學(xué)習(xí)js的伙伴們有很好的幫助,需要的朋友可以參考下2021-04-04