e 2 months ago
parent
commit
cfbd42bd07
1 changed files with 104 additions and 0 deletions
  1. 104 0
      14.ts/2.类型/2.ts

+ 104 - 0
14.ts/2.类型/2.ts

@@ -0,0 +1,104 @@
+// 引用数据类型 Object(object/array/function)
+let a: object;
+// a =1;
+a = [];
+a = {};
+a = function () {};
+
+/**
+ * 对象:
+ * {
+ *  属性名:属性值
+ * ...
+ * 在属性后 添加问号  相当于给当前属性设置可选开关
+ * }
+ */
+let b: {
+  a: number;
+  c: string;
+  d?: boolean;
+  // 可以添加任意属性 任意类型
+  [propName: string]: any;
+};
+
+// b = {
+//     a:12,
+//     c:'11'
+// }
+b = {
+  a: 12,
+  c: "11",
+  d: false,
+};
+
+b = {
+  a: 12,
+  c: "11",
+  // d: false
+};
+b = {
+  a: 12,
+  c: "11",
+  e: false,
+  f: "12",
+};
+
+/**
+ * 函数
+ *
+ */
+
+let g: (a: number, b: number) => number;
+g = function fn1(a, b) {
+  return a + b;
+};
+g(8, 9);
+
+/**数组
+ * let xxx:type[];
+ * let yyy:Array<type>
+ */
+let x: string[];
+x = ["1", "2"];
+// let y:Array<boolean>=[1,2];
+// let y:Array<boolean>=[true,false];
+
+// 元祖:固定长度的数组
+let z: [number, boolean, number];
+
+z = [1, true, 1];
+
+// 枚举
+enum Sex {
+  man,
+  woman,
+}
+
+let o: {
+  name: string;
+  age: number;
+  sex: Sex;
+};
+
+o = {
+  name: "LiLi",
+  age: 18,
+  sex: Sex.woman,
+};
+
+console.log(o.sex === Sex.man ? "男" : "女");
+
+// 类型别名
+type myType = 1|2|3|4;
+let p:myType = 2;
+
+
+// 逻辑运算符 &
+let r:{name:string}&{age:number};
+r = {
+    name:'孙悟空',
+    age: 18
+}
+
+
+export {};