1. typescript中为了使编写的代码更规范,更有利于维护,增加了类型校验,在定义变量的时候需要指定变量的类型,在typescript中主要提供了
- 布尔类型 boolean
- 数字类型 number
- 字符串类型 string
- 数组类型 array
- 元组类型 tuple
- 枚举类型 enum
- 任意类型 any
- null
- undefined
- void类型
- never类型
1. 布尔类型
let flag:boolean = true;
只能为true 或者 false,否则编译出错
2. 数字类型
let a:number = 123;
a = 123.3;
3. 字符串类型
let name:string = "hello, world";
4. 数组类型
// 第一种定义方式
let arr1:number[] = [1, 2, 3, 4, 5];
let arr2:string[] = ['hello', 'world'];
// 第二种定义方式
let arr3:Array<number> = [1, 2, 3, 4, 5];
let arr3:Array<string> = ['hello', 'world'];
5. 元组类型
属于数组的一种,可以指定数组每个元素的类型,可以指定多种类型,每种元素和类型需要一一对应
let arr:[string, number, boolean] = ['hello', 1, true];
6. 枚举类型
事先考虑到某一变量可能的取值,尽量用自然语言中含义清楚的单词来标识他的每一个值,这种方法称为枚举方法,用这种方法定义的类型称为枚举类型,主要用于标示状态。
/**
enum 枚举名 {
标识符[=整型常数],
标识符[=整型常数],
...
标识符[=整型常数]
};
**/
pay_status 0 未支付 1 支付 2 交易成功
sex 1 男 2 女 3保密
enum Flag {
success = 1,
error = -1
}
let f:Flag = Flag.success;
如果没有赋值,则默认输出索引值index,如果上一个索引赋值,则按照规律输出下一个值
7. 任意类型
let anyType:any = 123;
anyType = 'hello world';
用途:
操作dom的时候,会报一个warning
let boxDomArr = documnet.getElement.className("box");
8. unll 和 undefined
null 和 undefined 是其他(never类型)数据类型的子类型
let num:number;
console.log(num); // 输出undefined 报错
let num:undefined;
console.log(num); // 输出undefined 正确
// 也可以同时
let num:number | undefined;
let num:null;
// 一个元素可能是number类型,可能是null,可能是undefined
let num:number | null | undefined;
9. void类型
表示没有任何类型,一般用于定义方法的时候方法没有返回值
function run():void {
console.log('run');
}
run();
10. never类型
其他类型(包括 null 和 undefined)的子类型,代表从来不会出现的值,这意味着声明never的变量,只能被never类型所赋值
let a:never;
a = 123; // 错误
a = (() => {
throw new Error('错误');
})()