在typescript中,我们定义对象的方式要用关键字interface(接口),
使用interface来定义一种约束,让数据的结构满足约束的格式。定义方式如下:
 
// 定义一个接口类型
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 接口和对象类型(四)的更多相关文章

  1. 四:python 对象类型详解一:数字(下)

    一:位操作 除了一般的数学运算,python也支持c语言中的大多数数学表达式.这包括那些把整数当作二进制位串对待的操作.例如,还可以实现位移及布尔操作: >>> x = 1 > ...

  2. TypeScript 学习笔记 — 自定义类型:部分属性可选,反选 key,求对象交差并补集等(十三)

    目录 将部分属性变为可选属性 根据值的类型 反选 key 写法一:基础原理写法,使用不同的内置类型,Pick 和 Omit 写法二:基础原理写法,使用 Pick 内置类型 + 传参的方式 写法三:使用 ...

  3. TypeScript完全解读(26课时)_12.TypeScript完全解读-高级类型(1)

    12.TypeScript完全解读-高级类型(1) 高级类型中文网的地址:https://typescript.bootcss.com/advanced-types.html 创建新的测试文件 ind ...

  4. TypeScript完全解读(26课时)_13.TypeScript完全解读-高级类型(2)

    13.TypeScript完全解读-高级类型(2) 高级类型中文网的地址:https://typescript.bootcss.com/advanced-types.html 创建文件并在index. ...

  5. 使用Typescript重构axios(二十四)——防御XSRF攻击

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  6. 《三》大话 Typescript 接口

    > 前言: 本文章为 TypeScript 系列文章. 旨在利用碎片时间快速入门 Typescript. 或重新温故 Typescript 查漏补缺.在官方 api 的基础上, 加上一些日常使用 ...

  7. JSP九大内置对象和四个作用域

    JSP九大内置对象和四个作用域 在学习JSP的时候,首先就要先了解JSP的内置对象,什么是内置对象呢?内置对象也叫隐含对象,就是不需要预先声明就可以在脚本代码和表达式中随意使用.而这样的内置对象在JS ...

  8. JSP九大内置对象和四种属性范围解读

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文首先主要解说了JSP中四种属性范围的概念.用法与实例. 然后在这个基础之上又引入了九 ...

  9. HQL查询——查询返回对象类型分析

    关于HQL查询,我们可以结合hibernate的API文档,重点围绕org.hibernate.Query接口,分析其方法,此接口的实例对象是通过通过session.对象的creatQuery(Str ...

  10. JAVA IO分析二:字节数组流、基本数据&对象类型的数据流、打印流

    上一节,我们分析了常见的节点流(FileInputStream/FileOutputStream  FileReader/FileWrite)和常见的处理流(BufferedInputStream/B ...

随机推荐

  1. C# 全局异常捕获(转载)

    C# 全局异常捕获 原文地址:https://www.cnblogs.com/tomahawk/articles/5993874.html 开发界有那么一个笑话,说是"「我爱你」三个字,讲出 ...

  2. Linux/macOS 查看网络接口

    Linux 显示网络设备的状态: $ nmcli device status DEVICE TYPE STATE CONNECTION enp0s5 ethernet connected Wired ...

  3. Https通信的SSL证书工作流程原理(转)

    前言 浏览器与服务器之间的https加密通信会包括以下一些概念:非对称加密.对称加密.RSA.证书申请.根证书.https证书加密,就是在传输层tcp和应用层http之间加了一层ssl层来对传输内容进 ...

  4. C语言输出格式工整的日历——2乘6样式(详见本文)

    本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码如不能在Dev-C++上完好运行,出现如下问题: E:\Dev-Cpp\源代码\万年历.c [Error] 'for' loop initia ...

  5. 爬虫案例2-爬取视频的三种方式之一:requests篇(1)

    @ 目录 前言 爬虫步骤 确定网址,发送请求 获取响应数据 对响应数据进行解析 保存数据 完整源码 共勉 博客 前言 本文写了一个爬取视频的案例,使用requests库爬取了好看视频的视频,并进行保存 ...

  6. 【合合TextIn】智能文档处理系列—电子文档解析技术全格式解析

    一.引言 在当今的数字化时代,电子文档已成为信息存储和交流的基石.从简单的文本文件到复杂的演示文档,各种格式的电子文档承载着丰富的知识与信息,支撑着教育.科研.商业和日常生活的各个方面.随着信息量的爆 ...

  7. 合合信息扫描全能王发布“黑科技”,让AI替人“思考”图像处理问题

    现阶段,手机扫描正越来越多地进入到人们的生活中.随着扫描应用场景的不断拓宽,诸多细节的问题逐渐显露,比如使用者在拍照扫描文档时,手指不小心"入镜"了,只能重拍:拍电脑屏幕时,画面上 ...

  8. Google – Reviews

    前言 继上一篇 Facebook – Reviews (Graph API) 后, 这篇继续介绍另一个 Reviews 大平台 Google Reviews. 想通过 API 获取 Google Re ...

  9. 基于 Session 实现短信登录

    短信验证 一.基于Session 1.登录流程 1)发送验证码 用户在提交手机号后,会校验手机号是否合法,如果不合法,则要求用户重新输入手机号 如果手机号合法,后台此时生成对应的验证码,同时将验证码进 ...

  10. x64汇编——汇编指令

    汇编指令 mov dest, src mov move的简称 将src的内容赋值给dest,类似于dest = src [地址值] 中扩号 [ ]里面放的都是内存地址 一个变量的地址值,是它所有字节地 ...