// object // object array function let a:object; a = []; a = {}; a = function() {}; /** * 数组 * 类型[] * Array<类型> */ let b:string[]; b = ['1','2','3']; let c:Array; c =[true,false]; // 元祖:固定长度类型的数组 let d:[number,string,boolean,number]; d = [1,'211',true,1]; /** * 对象语法 * {属性名:属性值,...,属性名?:属性值} * ?给当前字段设置可选性 * 可以添加任意属性 任意类型 * [propName:string]:any */ let e:{a:number,b:string,c?:number,[propName:string]:any}; e = { a:12, b:'hi', c:12, d:1, f:false, g:'hello' } /** * 函数语法: * (形参:类型,形参:类型....) => 类型 */ let f:(a:number,b:string)=> string; f = function(x:number,y:string):string { return x + y; } f(1,'21'); /** * 枚举: * enum 对象名称{ * * } */ enum Sex { man, woman } let g: { name: string, age: number, sex: Sex } g = { name:"孙悟空", age: 100000, sex: Sex.man } console.log(g.sex === Sex.man ? '1' : '0'); // 类型别名 type myBook =1|2|3|4; let h:myBook; let i:myBook; let j:myBook; let k:myBook; h =2; // 逻辑运算符 & let l: {name:string} & {age:number}; l = { name:"哪吒", age: 7 }