// object 是js中的一个类型 // 基本数据类型:number string undefined null boolean // 引用数据类型: Object(Array object function) let a:object; a = {}; a = []; a = function() {}; /** * 对象语法 * {属性名:属性值,属性名?:属性值...} * 属性名后添加问号 相当于给当前属性设置可选开关 */ let b:{a:number,b?:string}; b = {a:1,b:'1'}; b = {a:5}; /** * [propName:string]:any 可以添加任意属性的任意类型的数据 */ let c:{a:number,b?:string,[propName:string]:any}; c = {a:10,b:'12',c:14,d:true}; // let b = {a:1,b:1} /** * 函数语法: * (形参:类型,形参:类型....) => 类型 */ let d:(a:number,b:number) => number; d = function fn1(a:number,b:number):number { return a+b; }; let e:(c:string,d:string) => string; e = function fn2(a:string,b:string):string { return a+b; } /** * 数组语法 * 类型[]; */ let f = []; // 字符串类型数组 let g:string[]; g = ['1','1','1'] let h:number[]; h =[2,5,7,9] let i:Array // i = [1]; i = [false]; /** * 元祖:固定长度的数组 */ let j:[number,boolean,string]; j = [1,false,'22']; /** * 枚举 * enum 对象名称 { * 定义的枚举值 * } */ enum Sex { man, woman } let k: { name:string, age:number, sex:Sex } k = {name:"孙悟空",age:20,sex: Sex.man}; console.log(k.sex === Sex.man ? "男性" : "女性"); // 类型别名 type myType = 1|2|3|4; let l:myType; let m:myType; let n:myType; // 逻辑运算符 & let o: {name:string} & {age:number}; o = {name:'孙悟空',age:20}; export{}