TypeScript為對象動態添加屬性代碼示例

目錄 1.定義 2.TypeScript 類型模板 3.為對象動態添加屬性 3.1 解決方法 3.2 對象作為參數傳遞 3.3 方法返回對象 3.4 對象數組 總結 1.定義 TypeScript 對象是包含一組鍵值對的實例。 值可以是標
目錄
  • 1.定義
  • 2.TypeScript 類型模板
  • 3.為對象動態添加屬性
    • 3.1 解決方法
    • 3.2 對象作為參數傳遞
    • 3.3 方法返回對象
    • 3.4 對象數組
  • 總結

    1.定義

    TypeScript 對象是包含一組鍵值對的實例。 值可以是標量、函數、數組、對象等,如下實例:

    var object_name = { 
        key1: "value1", // 標量
        key2: "value",  
        key3: function() {
            // 函數
        }, 
        key4:["content1", "content2"] //集合
    }
    
    //訪問對象
    object_name.key1	// value1
    object_name.key4	// ["content1", "content2"]
    

    2.TypeScript 類型模板

    var sites = {
        site1: "",
        site2: 0,
        sayHello: function () { } // 類型模板
    };
    
    sites.site1 = "site1"
    sites.site2 = 2
    sites.sayHello = function () {
        console.log("hello " + sites.site1 + sites.site2);
    };
    
    sites.sayHello();	// hello site1 2
    

    3.為對象動態添加屬性

    如果我們使用以上的方法定義對象是無法做到為對象動態添加屬性

    let people = {
        name: "hwm",
        age: 18,
        sayHello: ()=> {}
    }
    
    people.sex = "man"
    

    以上代碼會報錯:

    3.1 解決方法

    定義一個包含數組屬性的接口,讓對象實現該接口

    interface obj {
        [idx: string]: any
    }
    let people: obj = {}
    people.name = "hwm"
    people.age = 18
    console.log(people)	// { name: 'hwm', age: 18 }

    3.2 對象作為參數傳遞

    方法一:

    private ParamObj(objT: {name: string, age: number}) {
       let people = objT
        console.log(objT)
    }
    
    let people = {name: "hwm", age: 18}
    this.ParamObj(people)		// {name: "hwm", age: 18}
    

    方法二:

    interface obj {
        [idx: string]: any
    }
    
    private ParamObj(objT: obj) {
      	let people = objT
       	console.log(objT)
    }
    
    let people:obj = {}
    people.name = "lll"
    people.age = 20
    this.ParamObj(people)	// {name: "lll", age: 20}
    

    3.3 方法返回對象

    private ReturnObj(): {name: string, age: number}{
        let people = {name: "hwm", age: 18}
        return people
    }
    
    let res = this.ReturnObj()
    console.log(res)	// {name: "hwm", age: 18}
    

    3.4 對象數組

    let tbl: {<!--{C}%3C!%2D%2D%20%2D%2D%3E-->name: string, age: number}[] = []

    總結

    到此這篇關于TypeScript為對象動態添加屬性的文章就介紹到這了,更多相關TS對象動態添加屬性內容請搜索技圈網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持技圈網!

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 午夜毛片在线观看| 人人爽人人爽人人片av| 成年男女男精品免费视频网站| 国产精品乱码在线观看| 奇米在线777| 国产色诱视频在线观看| 日韩欧美一区二区三区| 国产乱码精品一区二区三区中文 | 亚洲欧美日韩综合久久久久| 香蕉久久精品国产| 国内自产少妇自拍区免费| 中文字幕免费在线观看动作大片 | 男人肌肌捅女人肌肌视频| 国产成人无码a区在线观看视频 | 在线观看视频日韩| 中日韩欧美电影免费看| 欧美xx性在线| 亚洲综合无码一区二区| 色哟哟视频在线| 国产欧美日韩va另类在线播放| 久久久久无码精品国产H动漫| 精品卡一卡2卡三卡免费观看| 在线日本妇人成熟| 久久99精品久久久久久清纯| 欧美xxxx新一区二区三区| 人久热欧美在线观看量量| 羞羞视频网站免费入口| 国产成人vr精品a视频| 78成人精品电影在线播放日韩精品电影一区亚洲| 成人欧美一区二区三区的电影| 亚洲日产综合欧美一区二区| 福利一区在线观看| 国产va免费精品高清在线| 成人免费激情视频| 国产精品欧美一区二区三区不卡| 久久99精品久久久久子伦小说| 毛利兰的胸被狂揉扒开吃奶| 军人野外吮她的花蒂无码视频 | 国产精品亚洲w码日韩中文| 91香蕉在线观看免费高清| 大学生美女特级毛片|