目录
简介
TypeScript的定义以及优势,想必大家在前几篇文章中都已经学习到了;接下来,我们开始学习一下TypeScript中的Type也就是数据类型,每一个技术都有它自己对应的声明方式以及类型的定义。
让我们一起学习以下知识吧!!!!
TypeScript的类型
TypeScript与普通的Javascript最大的区别就是对类型的强定义。它给JavaScript带来了多种基本类型,同时程序员也可以定义类型。
基本类型
其他类型
高级类型
- union组合类型
- Nullable可空类型
- Literal预定义类型
各类型介绍
Number数字类型
对数字的定义只有一个很笼统的number来表示;既能表示整数、也能表示浮点数,甚至也可以表示正负数。
例如:1,5.3,-10
从本质上来说,Javascript并没有严格区别各种类型之间差异,于是基于JS创建出来了TS,所以在TS中使用number数字类型进行表示,还可以极大限度的保留JS的灵活性。
String字符串类型
举例:“hello”,‘hello’,`hello`
第三个是反引号:``,可以创建一个字符串模板,可以实现分段跟行,和填充变量。
与JavaScript一致。
boolean布尔类型
真 true、假 false
Array数组类型
数组:[]
数组中可以存放任意类型的数据
JS中数组的宽容度非常大,而TS也很好的继承了这一点
tuple元组类型
Tiu破,踏破
联合Union类型
一个变量同时支持多个类型,中间使用 | 分隔。
字面量类型
可以理解为是联合Union类型的样子,只不过是换成了具体的值,而不是string|number这样的类型了。
可以看到,union3 = 4报错了,这也就证明,此刻union3只能包含0,1,2三个数值。
枚举Enum类型
可以看出,如果没有指定默认值,则会使用下标索引。
Any类型
any顾名思义,就是不知道是什么,任何的,任意的。所以使用any类型,就是可以是任意类型。
unknown类型
unknown不知道的意思,也就是说,不知道该变量是什么类型。但是能确保它是个未定义的属性,而不是函数。
如果不进行判断类型,则会报错。
void类型
void就是没有返回值。表示该东西压根不存在。
可以看出,该函数就是void类型,不需要返回值。
undefined类型
undefined类型表示,变量没有初始化。
这样会报错,原因是没指定返回值。
void和undefined的区别:与undefined的区别不是一个语法问题,而是一个哲学问题。是区别存在于不存再的 问题。void表示本身压根不存在,undefined表示本身未初始化,但是存在。
never类型
可以看出,该函数进入之后就直接抛出异常,可想而知,这个函数永远也不会执行到最后一个大口号,所以这样的就称为never类型。
类型适配Type Assertions
通知TypeScript进行类型适配的过程就称为断言。
举例:
鼠标悬浮到message上,可以看到依然是any类型。所以就算我们给赋值为字符串,也不会改变初始类型。所以message不能使用专门针对字符串的endWith()内嵌函数的.
在这种情况下,本意是想要称为字符串类型的,所以我们要明确给TypeScript该message是什么类型,所以这就用到了断言,也可以称为类型适配。
所以有两种使用断言的方式:
注意:如果使用断言,则需要有信心保证不会出问题,不然很容易出类型相关的异常。。。
函数类型
函数相信不用过多的跟大家说了吧,会JavaScript的朋友们,应该都很熟悉了,无处不在写函数。
或者es6的方式定义:
TypeScript的方式,唯一区别就是再参数上可以明确指定类型。
再调用TypeScript的函数时如果有两个参数,则必须全部传入,而且类型必须一致,不然会报错。
错误的调用写法:
总结
TypeScript的基础类型语法,就讲到这里,在这里没有很详细的说,但是都是精髓,啊哈哈哈,肯定可以学会。再加上如果有的朋友学过python、JavaScript、Java这些语言的话,很快就可以上手。不管学什么,学多少,都要动手练习, 多动,多做,少说闲话,孰能生巧。加油吧,小伙伴们!!!
作者:筱白爱学习!!