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
个人目前能力有限,并没有自主构建一个社区的能力,如有任何问题或想法与我沟通,请通过上述某个平台联系我,谢谢!!!