import { Serializer } from "v8"; // 引用数据类型 let a:object; a = []; a = {}; a = function() {}; /**类型 * 对象的语法 * { * 属性名:属性值, * .. * .. * 在属性名后添加问号 相当于给当前属性添加可选开关 * } */ let b: { a:number, b:string, c?:boolean } b = { a:1, b:'2' } b = { a:11, b:'0', c:true } // 添加任意属性的任意类型数据 let c: { a:boolean, b?:string, [propName:string]:any } c = { a:true, b:'1', hi:"你好", say:"哈哈" } // 函数 // 普通函数 箭头函数 匿名函数 立即执行函数 // 定义函数类型 let d:(a:number,b:number) => number; d = function fn1(a:number,b:number) { return a + b; } d(12,5) // 数组 // let xxx:type[] // let xxx:Array let e:number[] = [1,2,3,4,5]; let f:boolean[] = [true,false]; let g:Array = [true,false]; // 元组:固定长度的数组 let h:[number,boolean]; h = [1,true]; // 枚举 enum Sex { man, woman } let i: { name:string, age:number, sex:Sex } i = { name:"Lucy", age: 10, sex: Sex.woman } // 判断:条件 ? '真' : '假' console.log(i.sex === Sex.woman? '女' : '男') // 类型别名 type myType = 1|2|3|4; let j:myType = 3; let x:myType = 2; // 逻辑运算符: | 或 / & 与 let m: {name:string} & {age:number}; m = { name:'图图', age: 3 } export {}