1、对象类型声明

1 let a :{name:string,age:number};
2 a = {name:"John",age:30};

如果想设定多个参数且不确定参数类型,可用any,类似于参数列表,不限制参数个数和类型

1 let a :{name:string,age:number,[pro:string]:any};
2 a = {name:"John",age:30,pro1:100,pro2:"Hello"};
解析:[pro:string]:any  任意类型,可以理解为参数列表。:string指定参数名类型
 
2、设置函数结构的类型声明
语法: 
  let 函数名: (参数列表) => 返回值类型;
let add: (a:number,b:number) => number;
          add = function(a,b){
              return a+b;
          }

  也可以在定义函数的同时给定参数和返回值类型

let add = function(a:number,b:number):number{
    return a+b;
}

 

3、数组类型声明

语法:

  ··类型[]  语法:

         let 变量名: 类型[] = [元素1,元素2,....]; 
1  let arr: number[] = [1,2,3,4,5];

    ··Array<类型>  语法:

         let 变量名: Array<类型> = [元素1,元素2,....];
1  let arr: Array<number> = [1,2,3,4,5];

4、元组类型声明

     元组就是固定长度的数组

let tuple: [string, number] = ["hello", 10];

5、枚举类型声明

     枚举就是一组命名常量

     enum Gender {Male, Female};

1 enum Gender { Male=0, Female=1};
2 let zs :{name:string,gender:Gender};
3 zs = {name:"张三",gender:Gender.Male};
4 console.log(zs.gender);

   enum 在定义枚举类型时,如果没有给定具体值,默认从0开始排

   例如:

1 enum Color {Red,Green,Blue};
    Color.Red; // 红色
    获取枚举类型有两种方式:
    1、Color.Red;
    2、Color['Green'];