typescript 文档阅读笔记-Unions and Intersection Types
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相关推荐
- Qt文档阅读笔记-共享库的创建与调用
使用共享库的符号 这个符号可以作用在变量.类.函数中,并且这些都可以被调用端使用. 在编译共享库中,需要使用export符号.在使用端调用的时候使用import符号. 这里是本人从文档中记录的笔记,大 ...
- Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图
Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图 QHeightMapSurfaceDataProxy:是Q3DSurface的一个基本代理类. 他是专门加载高度图. 高度图是没有X, ...
- Qt文档阅读笔记-Rotations Example相关
Rotations Example文档阅读笔记 使用这种方式,对y轴和z轴进行旋转. QQuaternion yRotation = QQuaternion::fromAxisAndAngle(0.0 ...
- FreeRTOS官方指导文档阅读笔记
FreeRTOS官方指导文档阅读笔记 基于 161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf,可 ...
- Blockly学习之文档阅读笔记
文档阅读来源--谷歌官网介绍: https://developers.google.com/blockly/guides/overview 概述 一个用于Web.Android.iOS的可视化代码编辑 ...
- Leaflet文档阅读笔记-Quick Start Guide笔记
目录 网络加载JS和CSS 初始化地图 在地图上做标记 在地图上点击事件获得坐标 个人对这篇文档的体会 网络加载JS和CSS 先要加载css,然后在加载js <link rel="st ...
- NiceScroll文档阅读笔记-NiceScroll(3.7.6)基本使用
前言 官方已经给出很好的文档了.在此本人总结下,方便以后查阅: GitHub - inuyaksa/jquery.nicescroll: nicescroll plugin for jquery - ...
- Qt文档阅读笔记-QWebEngineView及QML WebEngineView
这里主要是最近有给Java Web项目及Qt项目需要混合,自己搞的QtWebEngine没有问题,而用了项目里面的,就有问题,在此阅读下官方资料,看看能不能解决这样莫名其妙的问题,在此记录下本次的阅读 ...
- Qt文档阅读笔记-moc工具使用及其理论(moc工具如何添加到makefile中)
moc(Meta-Object Compiler):用于处理Qt中关于C++的扩展. moc工具读取C++头文件,看看这个头文件里面的类是不是包含Q_OBJECT宏,它会将这个头文件,转换为带有met ...
最新文章
- 中文版GPT-3来了?智源、清华发布清源 CPM——以中文为核心的大规模预训练模型
- 为自己给操作系统留个后门?我的安全管理经验谈
- 记录memcache分布式策略及算法
- 软件测试成功之本:项目风险的监控
- docker mysql 日志_docker中将MySQL运行在容器中失败提示“ InnoDB : Error 22 with aio_write”的解决办法...
- spring security 学习二
- 内网渗透-域内有网和无网
- python模仿百度云桌面_利用百度云接口实现车牌识别!人称Python调包侠!
- 辽宁沈阳计算机学校王斯琪,青春正好,理所当“燃”——沈阳万合技校开展2020-2021年度春季学期跳大绳比赛...
- vue 监听页面滚动事件:触发animate.min.css动画特效
- python分配问题_Python字符串分配问题!
- EDIUS 8中的快捷键该如何自定义
- GD32实战6__串口读写
- 3DGIS产品层次结构
- 蝙蝠侠大战超人:正义黎明[Batman v Superman: Dawn of Justice]
- android 百度地图应用
- OS学习笔记-3(清华大学慕课)系统启动流程及中断处理
- centos抓包使用
- 1. 使用 while/for 循环:计算 1-100 之间所有数字的和,所有偶数的和,所有奇数的和
- 士兵队列训练问题:某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的
热门文章
- 基于emWin的WAV,MP3软解软件播放器,带类似千千静听频谱,含uCOS-III和FreeRTOS两个版本
- VirtualBox虚拟机CentOS安装增强功能Guest Additions
- 使用计算机食谱编制,1食谱编制—营养成分计算法.ppt
- css使div元素水平并垂直的方法(4种)
- docker中VTK库vtkXOpenGLRenderWindow: Cannot create GLX context问题
- 【电商必看】利用“评论返现”提升店铺转化率
- 树的基本概念以及java实现二叉树(二)
- 机器人碰撞检测几何模型设计
- 阿里平头哥数字IC验证校招一面面经
- 多渔:小店老板娘的生意经