当前位置: 首页 > news >正文

【TypeScript】TypeScript的接口和对象类型(interface):

文章目录

        • 一、使用接口约束的时候不能多一个属性也不能少一个属
        • 二、重名interface 可以合并,继承
        • 三、可选属性 使用?操作符
        • 四、任意属性 [propName: string]
        • 五、只读属性 readonly,是不允许被赋值的只能读取
        • 六、添加函数


一、使用接口约束的时候不能多一个属性也不能少一个属

//这样写是会报错的 因为我们在person定义了a,b但是对象里面缺少b属性
//使用接口约束的时候不能多一个属性也不能少一个属性
//必须与接口保持一致
interface Person {b:string,a:string
}const person:Person  = {a:"213"
}

二、重名interface 可以合并,继承

//重名interface  可以合并
interface A{name:string}
interface A{age:number}
var x:A={name:'xx',age:20
}//继承
interface A{name:string
}interface B extends A{age:number
}let obj:B = {age:18,name:"string"
}

三、可选属性 使用?操作符

//可选属性的含义是该属性可以不存在
//所以说这样写也是没问题的
interface Person {b?:string,a:string
}const person:Person  = {a:"213"
}

四、任意属性 [propName: string]

需要注意的是,一旦定义了任意属性,那么确定属性和可选属性的类型都必须是它的类型的子集:

//在这个例子当中我们看到接口中并没有定义C但是并没有报错
//应为我们定义了[propName: string]: any;
//允许添加新的任意属性
interface Person {b?:string,a:string,[propName: string]: any;
}const person:Person  = {a:"213",c:"123"
}

五、只读属性 readonly,是不允许被赋值的只能读取

//这样写是会报错的
//应为a是只读的不允许重新赋值
interface Person {b?: string,readonly a: string,[propName: string]: any;
}const person: Person = {a: "213",c: "123"
}person.a = 123

六、添加函数

interface Person {b?: string,readonly a: string,[propName: string]: any;cb:()=>void
}const person: Person = {a: "213",c: "123",cb:()=>{console.log(123)}
}
http://www.lryc.cn/news/14435.html

相关文章:

  • 7、函数与异常
  • Julia 语言环境安装
  • 5.1 线程
  • 通讯录的实现
  • Urho3D导航
  • 【学习总结】激光雷达与相机外参标定:代码(cam_lidar_calibration)
  • 车载技术开发—{Android CarFrameWork}
  • 多城市二手车买卖发布管理小程序开发
  • 企业级信息系统开发学习笔记1.2 初探Spring——利用组件注解符精简Spring配置文件
  • 37、基于51单片机乒乓球比赛系统设计
  • VMware虚拟机安装Win11最详细过程以及遇到的这台电脑无法运行Windows11的问题
  • centos误删python2后怎么重新安装
  • Qt 开发使用VSCode 笔记2
  • 查找算法复习
  • 腾讯前端必会面试题(必备)
  • 探访上汽通用武汉奥特能超级工厂
  • 【Linux】线程函数和线程同步详细整理(金针菇般细)
  • Python学习笔记6:抽象
  • 自己手写一个redux
  • mysql调优参数
  • JavaEE简单示例——再插入的同时获取插入的主键列
  • sql语句练习
  • 广州蓝景—结合chatGPT下的教育模式变化
  • 大数据框架之Hadoop:MapReduce(三)MapReduce框架原理——shuffle机制
  • 4|无线传感器网络与应用|无线传感器网络原理及方法-许毅版|第3章:无线传感器网络通信-3.1协议结构 3.2物理层|青岛科技大学|课堂笔记
  • 关机时,如何控制systemd服务的关闭顺序
  • 关于MySQL镜像构建过程中添加自动初始化数据库
  • CS144-Lab2
  • Linux内核驱动之efi-rtc
  • Java 字符串