发布时间:2024-08-05 19:01
比如我们声明一个message,完整的写法如下:
注意:这里的string是小写的,和String是有区别的
string是TypeScript中定义的字符串类型,String是ECMAScript中定义的一个类
变量的类型推导(推断)
在开发中,有时候为了方便起见我们并不会在声明每一个变量时都写上对应的数据类型,我们更希望可以通过TypeScript本身的特性帮助我们推断出对应的变量类型:
我们给foo赋值123会报错,这是因为在一个变量第一次赋值时,会根据后面的赋值内容的类型,来推断出变量的类型
数字类型是我们开发中经常使用的类型,TypeScript和JavaScript一样,不区分整数类型(int)和浮点型(double),统一为number类型
ES6新增了二进制和八进制的表示方法,而TypeScript也是支持二进制、八进制、十 六进制的表示:
boolean类型只有两个取值:true和false,非常简单
string类型是字符串类型,可以使用单引号或者双引号表示:
同时也支持ES6的模板字符串来拼接变量和字符串
object对象类型可以用于描述一个对象:
但是从info中我们不能获取数据,也不能设置数据:
在 JavaScript 中,undefined 和 null 是两个基本数据类型。
在TypeScript中,它们各自的类型也是undefined和null,也就意味着它们既是实际的值,也是自己的类型:
在ES5中,我们是不可以在对象中添加相同的属性名称的,比如下面的做法:
通常我们的做法是定义两个不同的属性名字:比如identity1和identity2
但是我们也可以通过symbol来定义相同的名称,因为Symbol函数返回的是不同的值
当张三有一次传入一个boolean类型,发现报错,所以他会给接收的参数类型加上boolean类型,如下图
但还是报错,那是因为之前设置了下图的代码
所以张三这个时候明白了,需要对boolean进行处理,这就是never的作用,所以最终正确的代码为下图
元组类型
,很多语言中也有这种数据类型,比如Python、Swift等Tuple的应用场景
联合类型(Union Type)
使用联合类型
typeof
平等缩小
instanceof
in