问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Typescript 笔记之基础知识(3):TS 数据类型

发布网友 发布时间:2024-09-30 19:30

我来回答

1个回答

热心网友 时间:2024-10-24 07:53

学习 TypeScript(TS)的首要任务是了解其数据类型。本文将记录 TS 基本的数据类型。

在 TS 中,数据类型包括哪些?TS 作为 JavaScript(JS)的超集,自然包含了 JS 的所有数据类型,具体如下:

除此之外,TS 还新增了以下数据类型:

类型注解

在分析每种数据类型之前,我们先了解 TS 中的类型注解。它类似于强类型语言中的类型声明,类似于 C 语言中的“int a = 1”声明,其语法如下:(变量/函数):type,即在变量名后加上“类型”,如:

添加类型注解后,我们不能随意将其他类型的数据赋值给当前变量,比如上面的 n,我们不能将字符串赋值给它,否则 VS Code 将会给出格式高亮的错误:Type '"xxx"' is not assignable to type 'number'。

原始类型

JS 中最基础的三个数据类型 Boolean、Number、String 的声明方式如下:

数组

在 TS 中,数组的声明方式如下:

从上面我们可以看出,与原生的 JS 相比,TS 中的数组每个元素的类型在声明时已经绑定,因此如果其中插入非数字类型的数据,编辑器将会报错。

如果要使数组中可以插入其他类型的数据,则可以采用联合类型的方式,例如:

这样,数组就能包含多种数据类型了。

元组

元组是一种特殊的数组,它控制了数组成员的类型和数量,例如:

上面的代码控制了三个条件:

接下来,我们来看一下元组的越界问题:

尽管元组可以通过 push 方法添加新元素,但元组仍然无法访问刚添加的新元素。

函数

函数的声明需要给参数添加类型注解,如下:

函数的声明还有一种形式:(先声明后实现)

这种方式在实现时可以不写注解,参数名也可以和声明时不一样。

对象

按照 JS 的用法,我们可能觉得可以如下声明和操作对象:

在 TS 中应该这样做:

Symbol

undefined、null

当一个变量被声明成 undefined 或 null,该变量只能被赋值为 undefined 或 null:

在 TS 官网中,undefined 和 null 是任何类型的子类型,说明 undefined 和 null 可以赋值给任何其他类型,但不能直接赋值:

要使上面代码不报错,需要修改 TS 的配置文件:

或者,如果想要使用比较严格的语法,可以使用联合类型,例如:let num: number | undefined | null。

void

在 JS 中,void 是一种操作符号,可以使任何表达式返回 undefined,例如最简单的一种返回 undefined 的方式为 void 0。(注:undefined 不是 JS 中的保留字,可以通过一个 undefined 变量覆盖,例如:(function () {var undefined = 111; console.log(undefined)})()),在全局声明是无效的)

在 TS 中,void 的意思是“没有返回值”,通常用来表示函数没有返回值(可以理解为函数没有 return),个人理解为它是一种“标识”,类似于 C 语言中的 void。

any

any 即任何类型,TS 中只要不指定类型注解即可。

never 类型

这个类型与 void 有些相似,也是不返回值,用于标识函数,例如:

通俗理解 void 与 never:

枚举类型

相同枚举类型或以相同枚举成员作为类型的数据才能进行比较。

非常感谢您能阅读完这篇文章,您的阅读是我不断前进的动力。对于上面所述,有什么新的观点或发现有什么错误,希望您能指出。最后,附上个人常逛的社交平台:

知乎:zhihu.com/people/bi-an-...

CSDN:blog.csdn.net/YaoDeBiAn

GitHub:github.com/yaodebian

个人目前能力有限,并没有自主构建一个社区的能力,如有任何问题或想法与我沟通,请通过上述某个平台联系我,谢谢!!!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 在线等!!!有一部小说女主是男主的外甥女,女主妈妈和家里脱离了关系,女... 郑州长途汽车新北站到北环路中方园路怎么走 从郑州客运总站到郑州新北站坐几路公车?拜托各位了 3Q 郑州中心站下车坐几路到柳庄 哪部小说的番外男主是个军人姓云女主是他的外甥女 花园路刘庄到汽车客运总站怎么走 花园路刘庄站到客运总站怎么走 汕头市塑料周转筐模具生产厂 郑州客运总站有到刘庄的公交车没有?多少路? ...的,想咨询下有经验者要怎样去推销自己的塑料筐,哪里有求购_百度知 ... 开办水果塑料筐的制作工厂,都需要哪些设备,前期投入需要多少资金... 玉米粥的热量有多少 玉米粥热量高吗 ...的黑框子是什么塑料,本人有一些想破碎卖掉,不知道价格多少,万分感谢... 正常体质女性每天吃阿胶的适宜量是多少? 本人想办一个小型再生塑料颗粒加工厂,不知道需要多少资金!原料是... ...我刚做好了幻灯片,只有保存在桌面上,没有保存在其他地方,不小心删 ... 要使口28÷4的商是三位数,口里最小填(),如果商是两位数,口里最大填... 如果□57÷8的商是两位数,□里的数最大是___;如果□57÷8的商是三位 ... 求类似风居住的地方,百鬼夜行抄,passing by,这样悲伤的纯音乐。越... ...□里最小填(),要使商是两位数,□里最大填()。 ts基础使用-语法类型 | 03 typescript入门指南 传媒生有哪些专业 经常喝果汁对身体有害处么?大神们帮帮忙 《TS的数据类型》 喝多了饮料对身体有没有坏处? 传媒专业包括什么 有哪些就业方向 ts中对象的类型注解? 良辰的意思,良辰旅游景点攻略 机械设计制造及其自动化专业有哪些工科类专业 酒8%vol是什么意思? 苹果手机怎样才能不能视频通话? “半树斜阳隔坞舂”的出处是哪里 在南通如东县自助游,应该怎么提高旅行舒适度? 如何高性价比畅玩如东国清园景区? 沈阳小额贷款公司哪里最可靠 沈阳无抵押信用贷款地址 燃气热水器的插头还是拔了好还是不拔好? 天燃气热水器怎么拔电源? 我下载了搜狗,想删除没用的想智能abc这些打字法怎么删? 怎样删除多余的打字的~我只想要一个智能ABC其他的我都想删除了!帮帮忙...