1.变量赋值了类型就不能赋值其他类型
1 let a:number; 2 let b:string; 3 a = 10; 4 5 //不可以 6 //a="assdf"; 7 b="123"
2.如果变量的声明和赋值是同时进行的,TS可以自动对变量进行类型检查
let d = false; //TS在d声明时检测到是boolean类型,所以d不能赋值其他类型 //d=12
3.js中的函数是不考虑参数的类型和个数的,TS中需要指定参数类型和返回值
JS代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 //js中的函数是不考虑参数的类型和个数的 2 function sum(a,b){ 3 return a+b; 4 } 5 sum(11,22);//33 6 sum(11,"2222");//112222View Code
TS代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 //TS中 2 function sum_ts(a:number,b:number){ 3 return a+b; 4 } 5 sum_ts(11,22);//33 6 //不允许传参是string类型 7 //sum_ts(11,"2222");//112222 8 9 //函数的返回值是number 10 function sum_ts_return(a:number,b:number):number{ 11 //return a+"sdfsdf";//这个是不允许返回的 12 return a+b; 13 } 14 sum_ts(11,22);//33 15 //不允许传参是string类型 16 //sum_ts(11,"2222");//112222View Code
4.object类型声明
1 //object 表示一个js对象 2 let cc:object; 3 cc={}; 4 cc=function(){ 5 6 }
4.1{}用来指定对象中可以包含哪些属性
语法;{属性名:属性值} 在属性名后面加?表示属性是可选的1 let ccc:{name:string,age?:number}; 2 //ccc={}; 3 ccc={name:"joy"};
4.2:[propName:string]:any 任意类型的属性
propName 任意属性名(string),属性值类型是any(不做限定)1 let cccc:{name:string,[propName:string]:any} 2 cccc={name:"sdfsdfsdfsdf",xxx:111,xxa:"sdfsdf"}
5.函数的声明
设置函数结构的类型声明 语法:(形参:类型,...)=>返回值1 let dd:(a:number,b:number)=>number 2 dd=function(a,b){ 3 return a+b; 4 } 5 dd(1,2);
6.数组:
数组 语法(声明的两种方式):- 类型[]
- Array<类型>
1 //string类型的数组 2 let ee:string[] 3 let eee:Array<number>
7.元组,元组就是固定长度的数组
语法:[类型,类型,类型]1 let h:[string,number]; 2 h=["sdfsdf",77]
8.enum枚举:
1 enum Gender{ 2 Male=0, 3 Female=1 4 } 5 let eeee:{ 6 name:string, 7 gender:Gender 8 } 9 eeee={ 10 name:"sdfsdf", 11 gender:0 12 } 13 console.log(eeee.gender ===Gender.Male);
9.& 和 |
&:
1 let j:{name:string} & {age:number}; 2 j={name:"joy",age:12312};
|:这里的myType 1|2|3表示可以是1或者2或者3
1 type myType = 1|2|3|4; 2 let k:myType//等同于 let k:1|2|3|4
标签:typescript,变量,sum,number,name,let,类型,string From: https://www.cnblogs.com/lixiuming521125/p/16706474.html