为了使编写的代码更规范,更有利于维护,增加了类型校验,写 ts 代码必须指定类型。typescript中除了es5中的常见数据类型之外还多了元组类型tuple、枚举类型enum、任意类型any、void类型、never类型等。
TypeScript学习手册:
https://www.tslang.cn/docs/handbook/basic-types.html
先记录一下TypeScript的集中数据类型
1:布尔类型
let flag:boolean=true;
flag=false;
console.log(flag)
打印:
2:number数字类型
let num:number=123;
num=456;
console.log(num);
3:字符串类型(string)
let str:string='this is ts';
str='wangxiaoting';
console.log(str);
4:数组类型(arr)
//ts定义数组有两种方法
//1:第一种定义数组的方法
let arr:number[]=[11,22,33];
console.log(arr);
//2第一种定义数组的方法
let arr:Array<number>=[11,22,33];
console.log(arr);
5:元组类型(tuple) 属于数组的一种
//可以给每一个位置指定一个类型
let arr:[number,string]=[123,'1233'];
console.log(arr);
6:枚举类型
enum Flag{success=1,error=2};
let s=Flag.success;
console.log(s);
打印下标 如果标识符没有赋值,它的值就是下标
//官方例子
enum Color{bule,red,'green'};
let c=Color.red;
//打印下标 如果标识符没有赋值,它的值就是下标
console.log(c);
打印下标 如果标识符赋值,它的值就是赋的值4
//打印下标 如果标识符赋值,它的值就是赋的值4
enum Color{bule,red=4,'green'};
let c=Color.red;
console.log(c);
//下标为5
enum Color{bule,red=4,'green'};
let c=Color.green;
console.log(c);
状态码例子
//状态码
enum Err{'unidefined'=-1,'null'=-2,'success'=1};
let c=Err.null;
console.log(c);
7:any任意类型
//可以指定任何类型的值
let num : any=123456;
num='str';
num=true;
console.log(num)
打印结果
8:undefined和空类型null
//定义赋值123
let num :number|undefined;
num=123;
console.log(num)
//定义未赋值就是undefined
let num :number|undefined;
console.log(num)
//空类型null
let num :null;
num=null;
console.log(num)
9:void无类型
void表示没有任何类型,一般用于定义方法的时候没有返回值
//表示方法没有任何返回类型
function run():void{
console.log('wangxiaoting')
}
run();
对比:
//表示方法有返回类型,返回number类型
function run():number{
// return的必须是number类型
return 89;
}
run();
10:never类型:其他类型
//never类型:其他类型(包括null和undefined)的子类型,代表从不会出现的值
//这就意味着声明never的变量只能被never类型所赋值
一般指定类的写法:
let a:undefined;
a=undefined;
console.log(a)
//a只能是数字类型,若是写成了其他类型就会报错
let a:number;
a=234567;
console.log(a)
never类型的写法
let a:never;
//a=123; //错误写法
a = (() => { // 正确的写法
throw new Error('错误');
})()