TS 对象,为对象动态添加属性

2024-02-27 1143阅读

温馨提示:这篇文章已超过413天没有更新,请注意相关的内容是否还可用!

文章目录

  • 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"
      

      以上代码会报错:

      TS 对象,为对象动态添加属性

      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: {name: string, age: number}[] = []
      
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]