| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | // 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<boolean>// 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{}
 |