1.最近开始在学TS简单的说一下js中的数据类型和TS中数据类型的区别
2.js中分为基本数据类型,以及引用数据类型。
3.js中的基本数据类型,number:数值型、string:字符串类型、boolean:布尔型、null:空值类型、undefined:未声明便是undefined、以及引用数据类型object:引用数据类型中简单的来说还有Array、Date、Math、等等js中的引用类型、es6之后新添了一个基本数据类型symbol类型,简单的来说就是确定唯一性的一个类型symbol的使用方式较为复杂,这里就不过多的赘述了。
4.ts中的数据类型,基本数据类型保持不变我们只说JS中没有的类型
5.Tuple:元组类型,当我们明确的知道这个数组中的元素数量以及元素的类型的时候就可以使用元组的方式来表达。
6.Enum:枚举类型这是在js中所没有的,简单的说一下他的作用,当我们声明一个枚举类型的时候,如果不做赋值操作的话,初始的下标值为0开始。但是我们也可以初始不一样的下标值,或者全部都手动赋值,有点类似于很多后端语言中的枚举语句。
7.Unknown:当我们实现业务的时候可能有的时候我们并不知道这个值的类型没办法开始就定义好,比如用户的输入值,或者我们想在我们的API中使用所有的类型值的时候,我们此时就可以使用Unknown类型。
8.Any:有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。 这些值可能来自于动态的内容,比如来自用户输入或第三方代码库。 这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。 那么我们可以使用any
类型来标记这些变量,此时我们就可以使用Any类型
9.Void:某种程度上来说,void
类型像是与any
类型相反,它表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是void
10.Never:表示的是那些用不存在的值的类型,
例如,never
类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型; 变量也可能是never
类型,当它们被永不为真的类型保护所约束时。
never
类型是任何类型的子类型,也可以赋值给任何类型;然而,_没有_类型是never
的子类型或可以赋值给never
类型(除了never
本身之外)。 即使any
也不可以赋值给never
。
11.还有最后就是Object不属于基本类型值的引用数据类型。