1.什么时候会用到TS,规范数据类型的时候,如果往参数中规定传number类型,传其他类型报错这种情况可以使用ts
//使用js规定传入的参数类型number function first(n1,n2){ if(typeOf(n1)=='number'&&typeOf(n2)=='number'){ //顺利进入方法 return n1+n2; } } //使用ts规定传入的参数类型位number function second(n1:number,n2:number){ return n1+n2; }
2.联合类型
let t1:number | string=1 //这样写t1就会有number和string类型
3.定义数组的类型
let arr1:number:[]=[1,2,3,4,5] //只允许数组中包含number类型的值 let arr2:string[]=['1','2','3','4']//只允许数组中包含string类型的值 //泛型数组 let arr3:Array<number> =[1,2,3] //定义数组number类型 let arr4:Array<number|string>=['1',2,3] //定义数组number或string类型
4.泛型(Generics)是指在定义函数,接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性
5.接口为了约束对象中的类型
//接口 interface IOBJ{ name:string, age:number } let obj:IOBJ={ //将接口放在这个对象的定义值后面就规定了对象值的类型 name:'tom', age:11 }
6.函数类型的定义 输入类型,输出类型
//函数类型的定义 输入类型 输出类型 function f1(x1:number,x2:number):number{ return x+y; } let f2=function(x:number,y:number):number{ return x+y; } function f3(x:number,y:number):number[]{ return [x,y] } //如果函数没有返回值怎样定义输出类型呢 function f4(x:number,y:number):void{ //void定义无返回值的 if(x>y){ }else{ } }