| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 | // object:object function array /** * 对象语法 * {属性名:类型,属性名?:类型...} */// ? 代表属性可选 添加到属性名后// [propName:string]:any 在当前对象后添加任意个数的任意类型的任意数据let a:{name:string,age?:number,[propName:string]:any};a = {    name:"孙悟空",    age: 20}a = {    name:"猪八戒"}a = {    name:"孙悟空",    age: 20,    sex: "男",    hobby: "吃仙丹"}/** * 函数语法 * (形参:类型,形参:类型,形参:类型,) => 返回值类型 */let b:(name:string,age:number) => string;b = function(name:string,age:number):string {    return name + age;}console.log(b('11',2))/** * 数组语法: *  类型[] * Array<类型> */let c:[];// 字符串数组let d:string[];d = ['1','1','1','2'];let e:boolean[];e = [true,false]let f:Array<string>;f = ['2','2','3']/** * 元祖:固定长度的数组 */let g:[number,string,boolean];g = [1,'2',true];/** * 枚举  * enum 对象名称  { *  value * } */enum Sex {    man,    woman}let h:{    name:string,    age:number,    sex:Sex}h = {    name:"孙悟空",    age:20,    sex: Sex.man}console.log(h.sex === Sex.man ? '男' : '女');// 逻辑运算符 &let i:{name:string} & {age:number};i = {    name:"孙悟空",    age:20}// 类型别名type myType = 1|2|3|4;let j:myType;let k:myType;let l:myType;let m:myType;export{};
 |