Union Types

用来组合不同类型

let name: string | number

Unions with Common Fields

如果某个值的类型是一个联合类型。那么我们只能访问他们公共的变量。
可以试试使用类型断言来解决,前提是你明确知道该值是什么类型。也可以通过条件语句先进行判断是某种类型,然后再使用

interface Bird {fly(): void;layEggs(): void;state: 1
}interface Fish {swim(): void;layEggs(): void;state: 2;code: 2;
}declare function getSmallPet(): Fish | Bird;let pet = getSmallPet();
pet.layEggs();// Only available in one of the two possible types 报错
// swim 不是 Bird、Fish 共有的,当返回类型时 Bird 时,下面的代码就会报错。为了避免这种情况,
// 如果某个值的类型时一个联合类型。那么我们只能访问他们公共的变量。
pet.swim();
// 解决办法
(pet as Fish).swim()
// 联合类型下, state 的值为 1 | 2,可以使用该值判断当前值的类型是 Bird 还是 Fish,然后就可以使用该类型的 code
if(pet.state === 1) console.log(pet.code)

Intersection Types

可以将多个 type 聚合到一个 type 中

interface Person {name: stringage: number
}interface Student {school: stringscore: number
}interface User {base: Person & Student
}const user: User = {base: {name: 'long',age: 1,school: 'fdsl',score: 100}
}

typescript 文档阅读笔记-Unions and Intersection Types相关推荐

  1. Qt文档阅读笔记-共享库的创建与调用

    使用共享库的符号 这个符号可以作用在变量.类.函数中,并且这些都可以被调用端使用. 在编译共享库中,需要使用export符号.在使用端调用的时候使用import符号. 这里是本人从文档中记录的笔记,大 ...

  2. Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图

    Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图 QHeightMapSurfaceDataProxy:是Q3DSurface的一个基本代理类. 他是专门加载高度图. 高度图是没有X, ...

  3. Qt文档阅读笔记-Rotations Example相关

    Rotations Example文档阅读笔记 使用这种方式,对y轴和z轴进行旋转. QQuaternion yRotation = QQuaternion::fromAxisAndAngle(0.0 ...

  4. FreeRTOS官方指导文档阅读笔记

    FreeRTOS官方指导文档阅读笔记 基于 161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf,可 ...

  5. Blockly学习之文档阅读笔记

    文档阅读来源--谷歌官网介绍: https://developers.google.com/blockly/guides/overview 概述 一个用于Web.Android.iOS的可视化代码编辑 ...

  6. Leaflet文档阅读笔记-Quick Start Guide笔记

    目录 网络加载JS和CSS 初始化地图 在地图上做标记 在地图上点击事件获得坐标 个人对这篇文档的体会 网络加载JS和CSS 先要加载css,然后在加载js <link rel="st ...

  7. NiceScroll文档阅读笔记-NiceScroll(3.7.6)基本使用

    前言 官方已经给出很好的文档了.在此本人总结下,方便以后查阅: GitHub - inuyaksa/jquery.nicescroll: nicescroll plugin for jquery - ...

  8. Qt文档阅读笔记-QWebEngineView及QML WebEngineView

    这里主要是最近有给Java Web项目及Qt项目需要混合,自己搞的QtWebEngine没有问题,而用了项目里面的,就有问题,在此阅读下官方资料,看看能不能解决这样莫名其妙的问题,在此记录下本次的阅读 ...

  9. Qt文档阅读笔记-moc工具使用及其理论(moc工具如何添加到makefile中)

    moc(Meta-Object Compiler):用于处理Qt中关于C++的扩展. moc工具读取C++头文件,看看这个头文件里面的类是不是包含Q_OBJECT宏,它会将这个头文件,转换为带有met ...

最新文章

  1. 中文版GPT-3来了?智源、清华发布清源 CPM——以中文为核心的大规模预训练模型
  2. 为自己给操作系统留个后门?我的安全管理经验谈
  3. 记录memcache分布式策略及算法
  4. 软件测试成功之本:项目风险的监控
  5. docker mysql 日志_docker中将MySQL运行在容器中失败提示“ InnoDB : Error 22 with aio_write”的解决办法...
  6. spring security 学习二
  7. 内网渗透-域内有网和无网
  8. python模仿百度云桌面_利用百度云接口实现车牌识别!人称Python调包侠!
  9. 辽宁沈阳计算机学校王斯琪,青春正好,理所当“燃”——沈阳万合技校开展2020-2021年度春季学期跳大绳比赛...
  10. vue 监听页面滚动事件:触发animate.min.css动画特效
  11. python分配问题_Python字符串分配问题!
  12. EDIUS 8中的快捷键该如何自定义
  13. GD32实战6__串口读写
  14. 3DGIS产品层次结构
  15. 蝙蝠侠大战超人:正义黎明[Batman v Superman: Dawn of Justice]
  16. android 百度地图应用
  17. OS学习笔记-3(清华大学慕课)系统启动流程及中断处理
  18. centos抓包使用
  19. 1. 使用 while/for 循环:计算 1-100 之间所有数字的和,所有偶数的和,所有奇数的和
  20. 士兵队列训练问题:某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的

热门文章

  1. 基于emWin的WAV,MP3软解软件播放器,带类似千千静听频谱,含uCOS-III和FreeRTOS两个版本
  2. VirtualBox虚拟机CentOS安装增强功能Guest Additions
  3. 使用计算机食谱编制,1食谱编制—营养成分计算法.ppt
  4. css使div元素水平并垂直的方法(4种)
  5. docker中VTK库vtkXOpenGLRenderWindow: Cannot create GLX context问题
  6. 【电商必看】利用“评论返现”提升店铺转化率
  7. 树的基本概念以及java实现二叉树(二)
  8. 机器人碰撞检测几何模型设计
  9. 阿里平头哥数字IC验证校招一面面经
  10. 多渔:小店老板娘的生意经