zheng 1 settimana fa
parent
commit
6554d73f80
1 ha cambiato i file con 52 aggiunte e 0 eliminazioni
  1. 52 0
      19.ts/类型/2.ts

+ 52 - 0
19.ts/类型/2.ts

@@ -0,0 +1,52 @@
+// let a = {}
+// 常规的对象类型
+// {属性名:类型,属性名:类型,....}
+// ? 当前属性 可以存在或者不存在
+// 扩展属性 允许额外定义任意属性 [propName:string]:any
+let a:{name:string,age?:number,[propName:string]:any};
+a = {
+    name:"图图",
+    age: 3
+}
+a = {name:"12",sex:'男',a:'1',b:2,c:3}
+
+// 函数
+// (形参:类型,形参:类型,...) => 类型;
+let b:(x:number,y:string) => string;
+b = function(a:number,b:string):string {
+    return a+b
+} 
+b(1,"1")
+
+// 数组
+// 定义格式:
+// 类型[] / Array<类型>
+// 元组 Tuple:固定长度 固定顺序 固定类型的数组称为元组
+let c:[number,number,string,number];
+// let c:number[];
+// let c:Array<number>;
+// let c:any[];
+c = [1,2,'3',4];
+
+// 枚举 Enum
+// 批量定义固定常亮 常用于状态 分类 选项
+// 默认从0开始自动递增赋值 可直接枚举名取值
+// 把固定的选项变成有名字的常亮
+enum Sex {
+    man, //0
+    woman // 1
+
+    // a = 2
+}
+let d :{
+    name:string,
+    age:number,
+    sex:Sex
+}
+d = {
+    name:"图图",
+    age: 3,
+    sex:Sex.man
+}
+console.log(d.sex == Sex.man ? '男' : '女')
+export {}