typescript 接口和对象类型(四)
// 定义一个接口类型
interface person{
age:number,
name:string,
sex:number
}
那么我们都哪些要注意的事项呢 下面这么写都会报错
// 如果定义一个对象缺少或者添加属性都会报错 也就是说要一一对应不可以多也不可以少 这么写会报错
// 缺少对象属性的定义
const ObjP:person = {
age:1,
name:'sdfs'
} // 这么写也会报错 超过了接口类型的定义
const ObjP1: person = {
age: 1,
name: 'sdfs',
sex:1,
h:1
} // 同样的数据类型不对应也会报错
正确的写法是,也就是一一对应
const ObjPOk: person = {
age: 1,
name: 'sdfs',
sex:1
}
那么如果后台返回的数据不确定,只能确定一些必然出现的数据怎么办,这个时候就可以采用可选属性来解决
如下
interface person1 {
name?: string, // 定义一个可循属性
age: number,
sex: number
}
// 这里省略了name 依然是正确的
const objKxL: person1 = {
age: 111,
sex: 1
}
那么如果返回的数据字段非常多怎么办,只知道几个固定,其他的字段都是不可控的,这个时候可以采用下面的方式
任意属性
// 任意属性定义方式
interface person2 {
name?: string, // 定义一个可循属性
age: number,
sex: number,
[prop:string]:any // 定义一个任意属性 类型是any 这个时候我们即使返回很多字段也不会报错 这里的“prop”可以随便定义成什么名字
} const obj2: person2 = {
age:1,
sex:1,
a:1,
b:'sdfsdfs'
}
如果我们希望返回的数据只能读,不可以去修改原始数据,这个时候就需要用到另外一个属性了,叫做只读属性
interface person3{
readonly id:string,
name?: string, // 定义一个可选属性
age: number,
sex: number,
[prop: string]: any // 定义一个任意属性 类型是any
}
const obj3:person3 = {
id:'sdfsdfd',
age:1,
sex:1,
a:1
}
obj3.id = 'fsdhfsdjfjhds'

那么接口如何制定函数呢,可以通过下列方式
interface person4 {
readonly id: string,
name?: string, // 定义一个可选属性
age: number,
sex: number,
cb: () => void, // 这里制定函数无返回值也就是默认空值返回
[prop: string]: any // 定义一个任意属性 类型是any
}
const obj4:person4 = {
id:'111',
age:1,
sex:2,
cb:()=>{
console.log('1111');
},
a:111
}
下一节学习typescript 数组类型
typescript 接口和对象类型(四)的更多相关文章
- 四:python 对象类型详解一:数字(下)
一:位操作 除了一般的数学运算,python也支持c语言中的大多数数学表达式.这包括那些把整数当作二进制位串对待的操作.例如,还可以实现位移及布尔操作: >>> x = 1 > ...
- TypeScript 学习笔记 — 自定义类型:部分属性可选,反选 key,求对象交差并补集等(十三)
目录 将部分属性变为可选属性 根据值的类型 反选 key 写法一:基础原理写法,使用不同的内置类型,Pick 和 Omit 写法二:基础原理写法,使用 Pick 内置类型 + 传参的方式 写法三:使用 ...
- TypeScript完全解读(26课时)_12.TypeScript完全解读-高级类型(1)
12.TypeScript完全解读-高级类型(1) 高级类型中文网的地址:https://typescript.bootcss.com/advanced-types.html 创建新的测试文件 ind ...
- TypeScript完全解读(26课时)_13.TypeScript完全解读-高级类型(2)
13.TypeScript完全解读-高级类型(2) 高级类型中文网的地址:https://typescript.bootcss.com/advanced-types.html 创建文件并在index. ...
- 使用Typescript重构axios(二十四)——防御XSRF攻击
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- 《三》大话 Typescript 接口
> 前言: 本文章为 TypeScript 系列文章. 旨在利用碎片时间快速入门 Typescript. 或重新温故 Typescript 查漏补缺.在官方 api 的基础上, 加上一些日常使用 ...
- JSP九大内置对象和四个作用域
JSP九大内置对象和四个作用域 在学习JSP的时候,首先就要先了解JSP的内置对象,什么是内置对象呢?内置对象也叫隐含对象,就是不需要预先声明就可以在脚本代码和表达式中随意使用.而这样的内置对象在JS ...
- JSP九大内置对象和四种属性范围解读
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文首先主要解说了JSP中四种属性范围的概念.用法与实例. 然后在这个基础之上又引入了九 ...
- HQL查询——查询返回对象类型分析
关于HQL查询,我们可以结合hibernate的API文档,重点围绕org.hibernate.Query接口,分析其方法,此接口的实例对象是通过通过session.对象的creatQuery(Str ...
- JAVA IO分析二:字节数组流、基本数据&对象类型的数据流、打印流
上一节,我们分析了常见的节点流(FileInputStream/FileOutputStream FileReader/FileWrite)和常见的处理流(BufferedInputStream/B ...
随机推荐
- C# 全局异常捕获(转载)
C# 全局异常捕获 原文地址:https://www.cnblogs.com/tomahawk/articles/5993874.html 开发界有那么一个笑话,说是"「我爱你」三个字,讲出 ...
- Linux/macOS 查看网络接口
Linux 显示网络设备的状态: $ nmcli device status DEVICE TYPE STATE CONNECTION enp0s5 ethernet connected Wired ...
- Https通信的SSL证书工作流程原理(转)
前言 浏览器与服务器之间的https加密通信会包括以下一些概念:非对称加密.对称加密.RSA.证书申请.根证书.https证书加密,就是在传输层tcp和应用层http之间加了一层ssl层来对传输内容进 ...
- C语言输出格式工整的日历——2乘6样式(详见本文)
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码如不能在Dev-C++上完好运行,出现如下问题: E:\Dev-Cpp\源代码\万年历.c [Error] 'for' loop initia ...
- 爬虫案例2-爬取视频的三种方式之一:requests篇(1)
@ 目录 前言 爬虫步骤 确定网址,发送请求 获取响应数据 对响应数据进行解析 保存数据 完整源码 共勉 博客 前言 本文写了一个爬取视频的案例,使用requests库爬取了好看视频的视频,并进行保存 ...
- 【合合TextIn】智能文档处理系列—电子文档解析技术全格式解析
一.引言 在当今的数字化时代,电子文档已成为信息存储和交流的基石.从简单的文本文件到复杂的演示文档,各种格式的电子文档承载着丰富的知识与信息,支撑着教育.科研.商业和日常生活的各个方面.随着信息量的爆 ...
- 合合信息扫描全能王发布“黑科技”,让AI替人“思考”图像处理问题
现阶段,手机扫描正越来越多地进入到人们的生活中.随着扫描应用场景的不断拓宽,诸多细节的问题逐渐显露,比如使用者在拍照扫描文档时,手指不小心"入镜"了,只能重拍:拍电脑屏幕时,画面上 ...
- Google – Reviews
前言 继上一篇 Facebook – Reviews (Graph API) 后, 这篇继续介绍另一个 Reviews 大平台 Google Reviews. 想通过 API 获取 Google Re ...
- 基于 Session 实现短信登录
短信验证 一.基于Session 1.登录流程 1)发送验证码 用户在提交手机号后,会校验手机号是否合法,如果不合法,则要求用户重新输入手机号 如果手机号合法,后台此时生成对应的验证码,同时将验证码进 ...
- x64汇编——汇编指令
汇编指令 mov dest, src mov move的简称 将src的内容赋值给dest,类似于dest = src [地址值] 中扩号 [ ]里面放的都是内存地址 一个变量的地址值,是它所有字节地 ...