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

TypeScript基础类型:原始类型对象类型、数组类型、元组类型枚举类型和联合类型

TypeScript 强大类型系统使得开发者能够更轻松地编写可维护、可扩展代码。本文将详细介绍 TypeScript基础类型,包括原始类型对象类型、数组类型、元组类型枚举类型和联合类型。...原始类型 TypeScript 中,有以下几种原始类型:数字类型数字类型用于表示整数或浮点数。可以使用 number 关键字来声明数字变量。...例如:enum Color { Red, Green, Blue,}let color: Color = Color.Green;枚举类型中,每个枚举成员都有一个与它关联数字,默认从 0 开始...类型推断和类型断言TypeScript 具有强大类型推断能力,它可以根据上下文自动推断变量类型。例如,如果我们定义变量时直接赋值,TypeScript 可以推断出变量类型。...总结本文详细介绍了 TypeScript 基础类型,包括原始类型对象类型、数组类型、元组类型枚举类型和联合类型等方面。

31530

iOS·枚举变量 未赋值赋值为空 情况下,默认为0(即第一个枚举类型

枚举类型变量赋值特性: 一个枚举类型如果没有赋初值,则默认为0。 一个枚举类型如果赋值为nil,同样为0。...比如说,有这样一个枚举类型: typedef NS_ENUM(NSInteger, PopupType) { PopupTypeNormal = 0, PopupTypeBookInfo...= 1 }; 调用时候,代码欲从VC字典数组 self.resource 中获取某字典 self.resource[indexPath.row] 并取出 type 键值对,但实际使用时,该字典并不存在键值对...,即 [self.resource[indexPath.row] objectForKey:@"type"] 为空,这时候如果把它传递给枚举类型,所获得到枚举类型仍为0。...打个断点,可以发现type1和type2均为PopupTypeNormal,即第一个枚举类型

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

MySQL枚举类型enum字段插入不在指定范围时, 是否是”插入了enum第一个”?…「建议收藏」

刚刚在看>一书”ENUM类型”一节, 以下面的代码举例, 得出结论: “还可以看出对于不在ENUM指定范围内时, 并没有返回警告, 而是插入了enum(‘M’, ‘F’)第一个...这个相当于是一个警告信息,我本地测试 5.7 中,直接插入会报错,但是使用 ignore 后,数据能被强制插入,但是是空。...INSERT ignore INTO user (sex) VALUES (5); 服务器使用 MySQL 5.5 测试 无论是否添加 ignore 数据都能被插入,但是是空。... MySQL 枚举类型“八宗罪” 这篇文章第七条,文中提到了,如果不合法会被处理成空字符串,在后一段中又提到了因为类型缘故,会根据枚举索引去取值。...for column ‘genter’ at row 1“; 所以,建议开发中尽量不用枚举类型,免得报无谓错误; 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/

1.7K20

从C#到TypeScript - 类型

,都是用number表示,这样也省了很了事,少了C#里类似longint overflow问题。...功能上和C#差不多: 目的都是为数值提供一个友好名字,增加代码可读性和可重构性 默认情况下从0开始编号 也可以手动赋值 可以实现类似C# Flag特性 但也有一些细节不一样: C#枚举toString...()会返回枚举文本,而TypeScript是数值 TypeScript可以通过数值下标取得枚举字符串 enum Action{ add = 1, edit = 2, del...C#6.0里模板字符串语法糖$"this is {name}'s blog"TypeScript里也有类似的支持,当然,这也是ES6规范。...never是TypeScript引进,个人觉得是一种语义上类型,用来表示永远不会得到返回,比如while(true){}或throw new Error()之类。

1.7K50

TypeScript 演化史 — 第七章】映射类型和更好字面量类型推断

转换后属性组成新类型。 使用映射类型,可以捕获类型系统中类似 Object.freeze() 等方法效果。冻结对象后,就不能再添加、更改或删除其中属性。...对于希望应用程序中冻结每种类型对象,咱们就必须定义一个包装器函数,该函数接受该类型对象并返回冻结类型对象。没有映射类型,咱们就不能以通用方式静态地使用 Object.freeze()。...更多映射类型示例 上面已经看到 lib.d.ts 文件中内置 Readonly 类型。此外,TypeScript 定义了其他映射类型,这些映射类型各种情况下都非常有用。... TypeScript 2.0 中,类型系统扩展了几个新字面量类型: boolean 字面量类型 数字字面量 枚举字面量 不带类型注解 const 变量或 readonly 属性类型推断为字面量初始化类型...: true 类似地,当初始化器是枚举时,推断出也是字面量类型: enum FlexDirection { Row, Column } const direction = FlexDirection.Column

3.7K40

【译】不是 TypeScript TypeScript -- JSDoc 超能力

目录 带有JSDoc注释TypeScript 激活检查 内联类型 定义对象 定义函数 导入类型 使用泛型 枚举 typeof 从类扩展 带有 JSDoc 注释 TypeScript 最优情况下,...} 在上面的例子中,我们增加了。这个操作只对 number 是合法,有了这些信息,TypeScript 知道addVAT返回将是 number。...定义对象 除了基本类型 JavaScript 中还经常使用到复杂类型对象,这种情况对基于注释类型注释也没有问题: /** * @param {[{ price: number, vat: number...枚举 将特殊结构化 JavaScript 对象换为枚举,并确保值一致: /** @enum {number} */ const HTTPStatusCodes = { ok: 200, forbidden...: 403, notFound: 404, } 枚举与常规 TypeScript 枚举有很大不同, 枚举确保此对象每个键都具有指定类型

3.1K30

【TS 演化史 -- 13】字符串枚举 和 弱类型(Weak Type)探测

字符串枚举 TypeScript 2.4 实现了最受欢迎特性之一:字符串枚举,或者更精确地说,带有字符串成员枚举。...字符串枚举成员没有反向映射 TypeScript 为每个构造映射对象枚举发出一些映射代码。...对于字符串枚举成员,此映射对象定义从键到映射,反之则不是: var MediaTypes; (function (MediaTypes) { MediaTypes["JSON"] = "application...为了避免生成枚举映射代码开销,咱们可以通过将const修饰符添加到声明中,将MediaTypes枚举换为const枚举: const enum MediaTypes { JSON = "application...另一个好处是 TypeScript 语言可以给咱们自动完成建议,因为类型注释告诉它咱创建对象类型。 弱类型解决方法 如果出于某种原因,咱们就是不想从特定弱类型类型检测中获得错误,该怎么办?

1.6K10

TypeScript 演化史 -- 7】映射类型和更好字面量类型推断

对于希望应用程序中冻结每种类型对象,咱们就必须定义一个包装器函数,该函数接受该类型对象并返回冻结类型对象。没有映射类型,咱们就不能以通用方式静态地使用 Object.freeze()。...此外,TypeScript 定义了其他映射类型,这些映射类型各种情况下都非常有用。...更好字面量类型推断 字符串、数字和布尔字面量类型(如:"abc",1和true)之前仅在存在显式类型注释时才被推断。从 TypeScript 2.1 开始,字面量类型总是推断为默认。... TypeScript 2.0 中,类型系统扩展了几个新字面量类型: boolean 字面量类型 数字字面量 枚举字面量 不带类型注解 const 变量或 readonly 属性类型推断为字面量初始化类型...: true 类似地,当初始化器是枚举时,推断出也是字面量类型: enum FlexDirection { Row, Column } const direction = FlexDirection.Column

2.8K10

TS 进阶 - 类型基础

但是个空 undefined 没有 TypeScript 中,null 和 undefined 类型是有具体意义类型。.../ undefined ,使用它和使用 any 一样恶劣 # Symbol Symbol JavaScript 中代表一个唯一类型类似于字符串类型,可以作为对象属性名,并用于避免错误修改... TypeScript 中,symbol 类型并不具有这一特性,多个具有 symbol 类型对象,它们 symbol 类型都是 TypeScript同一个类型。...TypeScript 中可以同时使用字符串枚举和数字枚举: enum Mixed { Num = 1, Str = 'str', } 枚举对象重要差异在于,对象是单向映射,只能从键映射到键值...,同时,其编译产物中并不会存在一个额外辅助对象,对枚举成员访问会被直接内联替换为枚举

1.7K50

深入理解 TypeScript Keyof 运算符,让你代码更安全、更灵活!

一、如何定义 KeyOf 运算符 TypeScript 中,keyof 运算符用于获取用户定义。它主要用于泛型,格式类似于联合运算符及其属性。keyof 运算符会检索用户指定索引。...三、 KeyOf 与映射类型结合使用 TypeScript 中,我们可以使用 keyof 运算符与映射类型结合,将现有类型换为类型。... Record 实用类型来创建一个映射,该映射将 Status 枚举映射到具有特定结构对象。...Status 枚举每个映射到一个对象,该对象具有 label 属性(字符串类型)和 color 属性(特定字符串字面量类型)。...statusMap 对象符合 Record 类型定义,确保每个 Status 枚举都映射到一个具有 label 和 color 属性对象

5610

细说枚举

自定义方式又称为为枚举显式赋值,它方法如下所示: enum Country { CN = 3, UK, JP = 70, USA = 67 } 我们代码中将第一个枚举对应整数常量设置为了...对于枚举类型变量,不限于声明中命名,因此能转换成基础类型,那么就能转换为枚举类型。之所以这么设计是因在以后 API 中有很大可能在不破换老版本同时为枚举添加新。...这里有一点需要注意,TryParse 方法是 .net 4.0 才出现,因此如果要在 .net 4.0 以下版本中将字符串转换为枚举时,需要进行恰当错误处理防止字符串不存在与枚举类型枚举中。...3.枚举和数字之间转换 枚举换为数字我们可以使用强,例如 (int)Country.CN返回结果是 0 。...从数字转换为枚举我们有两种方法,一种是使用强,另一种是使用 Enum 静态方发 ToObject 。

1.9K10

TypeScript魔法堂:枚举超实用手册

前言 也许前端同学会问JavaScript从诞生至今都没有枚举类型,我们不是都活得挺好吗?为什么TypeScript需要引入枚举类型呢?...而且一般规模项目当中,往往不止一个枚举类型,复制粘贴确实可以解决问题,但真心不优雅。 而TypeScript内置枚举语言实现恰恰能解决这个问题。...(注意:这里是反向映射,而不是通过换为枚举成员) 字符串枚举类型 enum Color { Red = 'Red', Green = 'Green', } 特性为: 1.1....所谓外部枚举,即使我们为了TypeScript开发环境下,更好地使用某些已采用JavaScript编写库,而被迫为其编写枚举类型声明。...于是.d.ts文件中编写如下外部枚举类型声明 declare enum DialogModes { NO, YES, ALL, } 总结 对于日常开发中我们绕不过枚举类型TypeScript

1.2K20

Typescript 2+迷你书 :从入门到不放弃

ts不是编程语言,可以理解为一种补充(超集),让JS具有后端部分特点(类型推断) ts不等同于js,但是可以理解为类似CoffeeScript,可以编译成js,跨平台且项目是开源 Typescript...,基于ts最新2.2来说; ---- 迷你文档手册 基础类型及常规声明 众所周知:JS中有这么几种类型数据: Symbol,boolean,Number,Object[Arrayjs中也属于对象]...,undefind,null,String; 那么TS中如何来声明一个变量或者对象亦或者声明返回对象类型呢?...// 最简单一个声明, 需要推导后面加上冒号和类型 let a: number; /*但是有些人有强迫症,比如会出现这类写法,但是这类写法最新版 *中会变成一个警告,说是该类型没必要再写推导类型了...temp8: object; // 类似Object.create皆可以 //------ 特殊类型 // 对于异常这类永远得不到正确返回,使用: never try{ ... }catch

82710

Typescript学习笔记,从入门到精通,持续记录

,会根据类型推论规则推断出一个类型; 4.对象类型—接口 TypeScript 中,我们使用接口(Interfaces)来定义对象类型。...== -1; }  注意 js中数组、函数同样都是对象,所以接口定义类型同样适它们 6.1 可选参数  与接口中可选属性类似,我们用 ?...换句话说,可选参数后面不允许再出现必需参数了 6.2 参数默认 ES6 中,我们允许给函数参数添加默认TypeScript 会将添加了默认参数识别为可选参数,此时就不受「可选参数必须接在必需参数后面.../ TypeScript 核心库定义文件中定义了所有浏览器环境需要用到类型,并且是预置 TypeScript。...导入,当也就必须使用三斜线指令来引入 拆分声明文件,当我们全局变量声明文件太大时,可以通过拆分为多个文件,然后一个入口文件中将它们一一引入,来提高代码可维护性。

1.9K50
领券