1.基础类型:
1.1 Boolean布尔类型
1.2 Number类型
1.3 String类型
1.4 Enum枚举类型
1.5 Array数组类型
1.6 元组类型tuple
1.7 null和undefined
1.8 void类型
1.9 any类型
1.10 never类型
1.11 Unknown类型
具体来看,如何定义,和js稍有不同
布尔类型
const isEnough:boolean = false
Number类型
const currentPage:number = 1;
Stirng类型
const text:string = 'lili'
Enum枚举类型(枚举类型用来定义数值集合,使用枚举我们可以定义一些带名字的常量)
普通枚举(如果没有给初始值,那么默认为0,且自增;设置初始值之后,后面的值在此基础上自增)
- enum Age {
- ZHANGSAN,
- LISI,
- WANGER
- }
- const ming:Age = Age.LISI
ming的值为1;
- enum Age {
- ZHANGSAN = 2,
- LISI,
- WANGER
- }
- const wang:Age = Age.ZHANGSAN;
wang的值为4
在来看"字符串枚举"
- enum Company {
- CORPORATION = '公司名称',
- TEL = '电话号码',
- MANAGER = '经理'
- }
- const linkTel : Company = Company.TEL
linkTel的值为"电话号码"
特殊的常量枚举,用const修饰符(常量枚举与普通枚举的区别是,整个枚举会在编译阶段被删除)
- enum AgeNoConst {
- ZHANGSAN,
- LISI,
- WANGER
- }
- const shanshan:AgeNoConst = AgeNoConst.WANGER
- console.log(shanshan)
- const enum Age {
- ZHANGSAN,
- LISI,
- WANGER
- }
- const ming:Age = Age.WANGER
- console.log(ming)
两个结果是一样的都是2,但是编译后的js文件内容却不相同
- var s = "我开始学习ts啦";
- console.log(s);
- var AgeNoConst;
- (function(AgeNoConst) {
- AgeNoConst[AgeNoConst["ZHANGSAN"] = 0] = "ZHANGSAN";
- AgeNoConst[AgeNoConst["LISI"] = 1] = "LISI";
- AgeNoConst[AgeNoConst["WANGER"] = 2] = "WANGER";
- })(AgeNoConst || (AgeNoConst = {}));
- var shanshan = AgeNoConst.WANGER;
- console.log(shanshan);
-
- var ming = 2 /* Age.WANGER */ ;
- console.log(ming);
- 可以看到被const关键字修饰的枚举,会在编译阶段被删除