?typeScript学习文档
官网教程:https://www.tslang.cn/docs/home.html
TypeScript Handbook(中文版):https://zhongsp.gitbooks.io/typescript-handbook/
TypeScript Deep Dive(中文版):https://jkchao.github.io/typescript-book-chinese/
TypeScript 入门教程(阮一峰):https://ts.xcatliu.com/
?typeScript数据类型
- boolean、string、number、 null 、undefined
- array、object
- void(空值)、any(任意值)、enum(枚举)、never(永不存在的值)、tuple(元组)
所有类型都是any类型的子类型
null
和undefined
是所有类型的子类型
any(任意值) 表示允许将该变量赋值为任意数据类型
适用场景: 为在编程阶段还不清楚类型的变量指定一个类型,不让类型检查器对这些值进行检查而是直接让他们通过编译阶段的检查。
变量声明时,若未指定其类型,则被识别为任意值类型。
访问any类型变量的任何属性和任何方法都是允许的,且对该变量的任何操作,返回的内容类型都是任意值。
类似js中的弱数据类型,没有类型限制,且会避开类型检测
void(空值) 表示没有任何类型 javaScript无void的概念
一般用来将函数的返回值声明为void,表明该函数无任何返回值
声明成void类型的变量只能被赋值为undefined或null,void类型是null和undefined类型的父类型
enum(枚举) 表示一组命名元素的集合
适用场景:取值被限定在一定范围内,某个类的有限集合
手动赋值的枚举项可以不是数字,也可以为小数或者负数,手动赋值的后续项(非手动赋值)的递增步长仍为1
枚举分类 (按声明方式)普通枚举、常量枚举、外部枚举、外部常量枚举
常量枚举 const enum
- 会在编译阶段被删除,并且不能包含计算成员。
外部枚举 declare enum
- 外部枚举与声明语句一样,常出现在声明文件中
- 外部枚举用来描述已经存在的枚举类型的形状
- declare定义的类型只会用于编译时的检查 编译结果中会被删除
枚举分类 (按枚举成员)数字枚举、字符串枚举、异构枚举
数字枚举
- 会生成反向映射(键值对 和 值键对)
字符串枚举
- 不会生成反向映射
- 字符串枚举没有自增长行为 可以很好的序列化
- 每个枚举成员必须用字符串字面量或另外一个字符串枚举成员进行初始化
异构枚举(混合字符串和数字成员)