最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

TypeScript遍歷對象屬性的問題

 更新時間:2021年11月11日 09:48:05   作者:guo&qi  
這篇文章主要介紹了TypeScript遍歷對象屬性的問題,文章圍繞TypeScript遍歷對象屬性的相關(guān)資料展開詳細(xì)內(nèi)容,需要的朋友可以參考一下

一、問題 

 比如下面的代碼:

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])。//這里出錯
    }
}
test(animal)

報錯:

二、解決辦法

1. 把對象聲明as any

function test(obj:Animal) {
    for (let k in obj) {
        console.log((obj as any)[k]) //不報錯
    }
}


  這個方法直接繞過了typescript的校驗(yàn)機(jī)制

2. 給對象聲明一個接口

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]) //不報錯
    }
}
test(animal)

  這個可以針對比較常見的對象類型,特別是一些工具方法。

3. 使用泛型

function test<T extends object>(obj:T) {
    for (let k in obj) {
        console.log(obj [k]) //不報錯
    }
}

4. 使用keyof

function test(obj:Animal) {
    let k: (keyof Animal);
    for (k in obj) {
        console.log(obj [k]) //不報錯
    }
}

到此這篇關(guān)于TypeScript遍歷對象屬性的問題的文章就介紹到這了,更多相關(guān)TypeScript遍歷對象屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

四川省| 娄底市| 扎赉特旗| 休宁县| 多伦县| 岳阳市| 徐汇区| 周口市| 沐川县| 乐陵市| 射阳县| 佛教| 达拉特旗| 彰武县| 迭部县| 湟源县| 玉龙| 闽清县| 若羌县| 贵港市| 怀宁县| 东兴市| 江门市| 北川| 东丰县| 舞阳县| 留坝县| 阳春市| 额尔古纳市| 基隆市| 玉田县| 大连市| 高淳县| 新竹市| 新建县| 蒙阴县| 普兰县| 五原县| 河间市| 涟水县| 西充县|