// 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; 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{};