首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TypeScript交叉类型&联合类型

二、联合类型(Union types)联合类型和交叉类型比较相似,联合类型通过|符号连接多个类型从而生成新的类型。它主要是取多个类型的交集,即多个类型共有的类型才是联合类型最终的类型。...联合类型可以是多个类型其中一个,可做选择,比如:string | number,它的取值可以是string类型也可以是number类型。...,r:string}interface Y{q:numberr:string,}type XY = X | Ylet value:XY = { q:1, r:'r'}多个接口类型进行联合函数接口类型进行联合...这里我们用in操作符来判断if('x' in testFunc) testFunc.x()扩展:boolean 类型可以看成是 true | false 的联合类型四、类型缩减当字面量类型和原始类型进行联合...:当接口类型进行联合,接口中同名属性的类型不同,该怎么进行缩减呢?

70410

自定义类型:结构体,枚举,联合

的时候我们也可以自定义编写所需的自定义函数,那类型呢?...比较常见的自定义类型主要分为3种:结构体、枚举、联合。 二、探窥自定义类型 1.结构体(struct) 1.1 结构的基础知识 结构是一些值的集合,这些值称为成员变量。...那在设计结构体的时候,我们既要满足对齐,又要节省空间,如何做到: 让占用空间小的成员尽量集中在一起。...联合(共用体) 4.1 联合类型的定义 联合也是一种特殊的自定义类型 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。...比如: //联合类型的声明 union Un { char c; int i; }; //联合变量的定义 union Un un; //计算连个变量的大小 printf("%d\n", sizeof

54410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【自定义类型:结构体,枚举,联合】

    自定义类型:结构体,枚举,联合 1....联合(共用体) 4.1 联合类型的定义 4.2 联合的特点 4.3 联合大小的计算 5. 总结: 1. 结构体 结构是一些值的某些集合,这些值称为成员变量。...和#define定义的标识符比较枚举有类型检查,更加严谨。 防止命名污染(封装)。 使用方便,一次可以定义多个常量。 4....联合(共用体) 4.1 联合类型的定义 联合也是一种特殊的自定义类型。 这种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间(所以联合也叫共用体)。...比如: //联合类型的声明 union Un { char c; int i; }; //联合变量的定义 union Un un; //计算连个变量的大小 printf("%d\n"

    47900

    【Python】类型注解 ⑤ ( Union 联合类型注解 | Union 联合类型语法 | 普通 容器 变量设置 Union 联合类型注解 | 函数设置 Union 联合类型注解 )

    , 既有 str 字符串 , 又有 int 数字类型 ; 2、Union 联合类型语法 如果一个 变量 或 元素 , 其类型 可能是多种类型 , 那么可以使用 Union 联合类型表示 ; 导入依赖...: 使用 Union 联合类型 , 需要导入如下依赖 ; # 导入 Union 联合类型依赖 from typing import Union Union 联合类型语法 : Union[类型1, 类型2..., ... , 类型n] 3、代码示例 - 普通变量设置 Union 联合类型注解 代码示例 : 下面的 3 个变量 , 其类型注解设置的 Union 联合类型 , 也就是为其赋值时 , 可以赋值 str...] = None 4、代码示例 - 容器变量设置 Union 联合类型注解 在 list 列表中将元素类型设置为 Union 联合类型 : 列表中的元素 既可以设置为 str 字符串类型 , 又可以设置为...- Union 联合类型 代码示例 : """ Union 联合类型注解 代码示例 """ # 导入 Union 联合类型依赖 from typing import Union var_i: Union

    75810

    TypeScript 联合类型

    联合类型(Union Types)可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值。注意:只能赋值指定的类型,如果赋值其它类型就会报错。...创建联合类型的语法格式如下:Type1|Type2|Type3 实例声明一个联合类型:TypeScriptvar val:string|number val = 12 console.log("数字为...console.log("数字为 " + val); val = "Runoob"; console.log("字符串为 " + val);输出结果为:数字为 12字符串为 Runoob如果赋值其它类型就会报错...:var val:string|number val = true 也可以将联合类型作为函数参数使用:TypeScriptfunction disp(name:string|string[]) { if...."); disp(["Runoob", "Google", "Taobao", "Facebook"]);输出结果为:Runoob输出数组....RunoobGoogleTaobaoFacebook联合类型数组我们也可以将数组声明为联合类型

    9710

    自定义类型:联合体和枚举

    联合体 1.1 联合体类型的声明 像结构体一样,联合体也是由一个或多个成员构成,这些成员可以是不同类型。 但是编译器只为最大的成员分配足够的内存空间。联合体特点是所有成员共用同一块内存空间。...#include //联合类型的声明 union UN {     char ch;     int i; }; int main() {     //联合变量定义...联合的成员是共用同一块内存空间,联合体的大小至少是最大成员的大小。...枚举类型的优点 我们也可以使用#define定义常量,为什么还有枚举? 枚举的优点: 1. 增加代码的可读性和可维护性。 2....和#define定义的标识符比较枚举有类型检查,更加严谨。 3. 便于调试,预处理阶段会删除 #define 定义的符号。 4. 使用方便,一次可以定义多个变量。 5.

    5010

    C语言:自定义类型——联合和枚举

    一、联合体 1.1 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以是不同的类型。 声明方式如下图: 那联合体和结构体究竟有什么区别呢??...这些可能取值本身都是由值的,默认是从0开始依次递增1,当然我们在声明的时候也可以自己赋初值,但是定义完成之后,就不能在该类型的外部去修改了!!...2、 和#define定义的标识符⽐较枚举有类型检查,更加严谨。...#define定义的标识符是不过是一个符号,而枚举是一种类型,有类型检查写代码会更加严谨 3、 便于调试,预处理阶段会删除 #define 定义的符号 枚举类型在调试的时候会显示出成员名,但是#define...、使⽤⽅便,⼀次可以定义多个常量 5.

    27010

    自定义类型:联合体和枚举

    联合体 1.1 联合体类型的声明 像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以不同的类型。 但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。...#include //联合类型的声明 union Un { char c; int i; }; int main() { //联合变量的定义 union Un un = {...代码1: //代码1 #include //联合类型的声明 union Un { char c; int i; }; int main() { //联合变量的定义 union...我们可以使用 #define 定义常量,为什么非要使用枚举? 枚举的优点: 增加代码的可读性和可维护性 和#define定义的标识符比较枚举有类型检查,更加严谨。...便于调试,预处理阶段会删除#define定义的符号 使用方便,一次可以定义多个常量 枚举常量是遵循作用域规则的,枚举声明在函数内,只能在函数内使用 2.3 枚举类型的使用 enum Color//颜色

    8610

    C-自定义类型-联合和枚举

    1、联合体(union) 1.1 什么是联合体 联合体是一种特殊的数据类型,它类似于结构体,联合体也是由一个或者多个成员构成这些成员可以是不同的类型。...在U中,字符类型的ch占1个字节,整型类型的 i 占4个字节,所以编译器只会为整型i分配4个内存的空间。 到这里我们大致清楚联合体的这个特点有什么作用。但是联合体究竟是怎么共用同一块空间的呢?...5个字节,vs中默认最大对齐数是8,5不是8的整数倍,因此最终大小为8. 2、枚举(enum) 2.1 枚举类型的声明 说到枚举,想必大家都不觉得陌生,相比起联合体,枚举这个名词我们在很多地方都听说过,...2.2 枚举类型的优点  我们可以使用#define定义常量,为什么非要使用枚举呢?这不是多次一举吗? 但是事实并非如此,枚举还是有很多好处的。...枚举的优点: 增加代码的可读性和可维护性 和#define定义的标识符相比枚举有类型检查,更加严谨 使用方便,一次可以定义多个常量 枚举常量遵循作用域规则的,枚举声明在函数内,只能在函数内使用

    8210

    自定义类型:联合体和枚举类型(联合体与结构体的区别)

    联合体: 一、联合体类型的声明 像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以不同的类型。 但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。...示例如下: //联合类型的声明 union Un { char c; int i; }; int main() { //联合变量的定义 union Un un = { 0 }; un.i =...通过使用联合体,可以避免浪费内存来存储不会同时使用的多个数据成员。 三、联合体的用例 3.1问:如何打印int类型每一个字节存储的数据?...枚举类型的定义与结构体类似,不同在于结构体每个成员之间是用;隔开的,而枚举成员之间却是用,分隔。...和#define定义的标识符比较枚举有类型检查,更加严谨。​ 3. 便于调试,预处理阶段会删除 #define 定义的符号 4. 使用方便,一次可以定义多个常量 5.

    14210

    联合体类型和枚举类型

    联合体 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。 联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体。...下面有一段代码去支持以上结论 #include //联合类型的声明 union Un { char c; int i; }; int main() { //联合变量的定义 union...以上定义的 enum Day , enum Sex , enum Color 都是枚举类型。 {}中的内容是枚举类型变量的可能取值,也叫枚举常量(注意这是常量) 。...我们可以使⽤ #define 定义常量,为什么⾮要使⽤枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符⽐较枚举有类型检查,更加严谨。...而#define定义的常量都是在全局使用的,不会被限制到只能在函数内使用。 总结 所以目前我们就讲解完了联合体和枚举 。 下一篇将给大家讲解动态内存管理。 谢谢大家!!!

    11310

    【C语言】自定义类型:联合和枚举

    前言 前面我们学习了一种自定义类型,结构体,现在我们学习另外两种自定义类型,联合 和 枚举。 正文开始—— 一、联合体 1....联合体类型的声明 与结构体一样,联合体是由一个或多个成员构成,这些成员可以是不同的类型。...int main() { //联合体变量的定义 union Un un={0}; //计算联合体变量的大小 printf("%zd\n",sizeof(un)...枚举类型的优点 我们可以使用 #define 定义常量,为什么要使用枚举类型?...增加代码的可读性和可维护性; 和 #define 定义的标识符比较枚举有类型检查,更加严谨; 便于调试,预处理阶段会删除 #define 定义的符号; 使用方便,一次可以定义多个常量; 枚举常量遵循作用域规则

    7210

    自定义类型之结构体,枚举,联合

    1.4 查看偏移量与修改默认对齐数 二、位段篇 位段的使用要求: 位段空间使用规则是: 位段总结: 三.枚举(enum) 枚举的定义: 枚举的优点 四、联合体(unio) 联合体的应用: 联合体的大小计算...这里我们只需要了解它是如何使用的就行....枚举类型中的成员只有在定义时可以更改(因为常量也要有值不是吗?) 他们都是常量,定义之后是不允许更改的....防止了命名污染(封装) 便于调试 使用方便,一次可以定义多个常量 四、联合体(unio) 联合体是一种很特殊的自定义类型,他与结构体一样可以同时定义多个变量....我们看一个联合体的例子. union Un { char a; int b; double c; }; 联合体的定义有了前面结构体的基础,还是很简单理解的.牛牛不过多介绍了.

    52960

    C语言——自定义类型:联合与枚举

    1.联合体 1.1 联合体类型的声明 1.结构体所有成员的空间都是独立的,而联合体所有成员都共用一块空间(所以也叫共同体),与结构体不同,联合体的关键字是union 2.与结构体一样,联合体也是由一个或多个成员组成...B,使用B就不使用A的时候,就可以使用联合体(共同体) //联合类型的声明 union Un { char c;//1个字节 int i;//4个字节 }; int main() {...int main() { //联合变量的定义 union Un un={0}; // 下面输出的结果是一样的吗?...我们可以使用 #define 定义常量,为什么非要使用枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符比较枚举有类型检查,更加严谨。 3....使用方便,一次可以定义多个常量 2.3 枚举类型的使用 enum Color//颜色 { RED=1, GREEN=2, BLUE=4 }; enum Color

    7110

    自定义类型: 联合体和枚举

    前言 : 书接上文, 下面我将继续详解C语言的剩下两个自定义类型: 联合体和枚举 个人主页 : 酷酷学!!! 正文开始 1....联合体 1.1 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。 但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。...enum Color//颜⾊ { RED=2, GREEN=4, BLUE=8 }; 2.2 枚举类型的优点 为什么使⽤枚举? 我们可以使⽤ #define 定义常量,为什么⾮要使⽤枚举?...枚举的优点: 增加代码的可读性和可维护性 和#define定义的标识符⽐较枚举有类型检查,更加严谨。...便于调试,预处理阶段会删除 #define 定义的符号 使⽤⽅便,⼀次可以定义多个常量 枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤ 2.3 枚举类型的使用 举个栗子: enum Color

    9810

    C语言----自定义类型:联合和枚举

    联合体的特点 像结构体一样,联合体也是一个或者多个成员构成的,这些成员可以是不同的类型 联合体的关键字:union 结构体的关键字:struct 枚举的关键字:enum 但是编译器只为最⼤的成员分配⾜够的内存空间...联合体的大小至少是最大成员大大小 这个联合体最大对齐数是4 那么联合体的总大小一定要是4的倍数 这个联合体最大成员的大小是这个数组,大小是5,就是相当于5个char类型 但是5不是4的倍数,...4 那么联合体的大小必须是4的倍数 虽然说联合体很节省空间,但是也不是那么很绝对的节省空间 */ 联合体的运用 /* 图书:库存量、价格、商品类型、书名、作者、⻚数 杯⼦:商品类型、价格、库存量设计...我们可以使⽤ #define 定义常量,为什么⾮要使⽤枚举? 枚举的优点: 增加代码的可读性和可维护性 和#define定义的标识符⽐较枚举有类型检查,更加严谨。...0; } define定义的话是全局的定义的 枚举类型的使用 enum Color//颜⾊ { RED=1, GREEN=2, BLUE=4 }; enum Color clr

    10210

    自定义类型:结构体,枚举,联合 (2)

    3.1 枚举类型的定义 enum Day//星期 { Mon, Tues, Wed, Thur, Fri, Sat, Sun }; enum Sex//性别 { MALE, FEMALE..., SECRET }; enum Color//颜色 { RED, GREEN, BLUE }; 以上定义的 enum Day , enum Sex , enum Color 都是枚举类型。...我们可以使用 #define 定义常量,为什么非要使用枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符比较枚举有类型检查,更加严谨。 3....联合(共用体) 4.1 联合类型的定义 联合也是一种特殊的自定义类型 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。...比如: //联合类型的声明 union Un { char c; int i; }; //联合变量的定义 union Un un; 如果我们想计算一下联合体的大小,那么int4个字节,char1个字节

    13710
    领券