let a:string;
a ='';//OK
a =0;//Errorlet a ='';// 变量初始化时赋值。TS会自动对变量进行类型检测
a =0;//Errorlet a:string='';let b:number=0;let c:boolean=true;let list:Array<number>=[1,2,3];//或let list:number[]=[1,2,3];let x:[string,number];
x =['',0];
x[3]='world';// OK, 字符串可以赋值给(string | number)类型
x[6]=true;// Error, 布尔不是(string | number)类型//字面量指定值为10let a:10;
a =10;// OK
a =11;// Error 字面量声明的指定值不可违反// 使用逻辑或 | 扩大指定范围 ⬇ ⬇ ⬇//指定值let a:'你好'|'您好'='你好';
a ='你好';// OK
a ='您好';// OK
a ='';// Error 字面量声明的指定值不可违反//联合类型let a:boolean|string;
a =true;// OK
a ='';// OK
a =0;// Error// any 任意类型 开启动态类型 关闭TS类型检测let a:any;//主动定义为any类型//或let a;//声明不指定类型,自动判断为any; 为隐式any
a ='';
a =0;
a =false;
a =[1,2,3];let b:string;
b = a;// OK 允许将any类型的a赋值给string类型的b// unknown 未知类型let a:unknown;
a ='';
a =0;
a =false;let b:string;
b = a;// Error 不允许将unknown未知类型的a赋值给string类型的b// 类型断言
给函数参数定义类型
functionsum(a:number,b:number){return a + b;}sum(1,2)// OK return 3sum(1,'2')// Error
给函数返回值定义类型
functionsum(a:number,b:number):number{return a + b;}