zheng 3 weeks ago
parent
commit
400084873d
2 changed files with 98 additions and 0 deletions
  1. 0 0
      15.ts/2.类型/1.ts
  2. 98 0
      15.ts/2.类型/2.ts

+ 0 - 0
1.ts → 15.ts/2.类型/1.ts


+ 98 - 0
15.ts/2.类型/2.ts

@@ -0,0 +1,98 @@
+// Object
+
+// Array 数组
+// let a = [];
+let aa:number[] = [1,2,3];
+let bb:string[];
+bb = ['1','2','3'];
+let cc:Array<boolean>;
+cc = [true,false,true];
+
+// Tuple 元组:固定长度的数组
+let dd:[string,number,boolean];
+dd = ['str',123,true];
+
+// Object 对象
+let ee:object;
+ee = {};
+ee = function(){};
+ee = [];
+let ff:{
+    name:string,
+    age:number,
+    sex:string,
+    address?:string ,// 可选属性
+    [propName:string]:any // 任意属性
+}
+
+ff = {
+    name:'张三',
+    age:18,
+    sex: '男',
+    address:'北京',
+    eat:'苹果',
+    book:'书籍' 
+}
+
+// ff = {
+//     name:'张三',
+//     age:18,
+//     sex: '男',
+// }
+
+// 函数类型
+function fn4():void {
+    console.log('fn4');
+}
+fn4();
+
+
+function fn5(a:number,b:string):string {
+    // console.log('fn5');
+    return a + b;
+}
+fn5(3,'45');
+
+let fn6:(a:number,b:number)=>number;
+fn6 = function(x,y) {
+    return x + y;
+}
+fn6(12,34);
+
+// 枚举 enum
+enum Sex1 {
+    man,woman
+}
+
+let kk: {
+    name:string,
+    age:number,
+    sex: Sex1
+}
+
+kk = {
+    name:'李四',
+    age:20,
+    sex: Sex1.man
+}
+
+console.log(kk.sex === Sex1.man ? '男' : '女');
+
+// 类型别名
+type myType = string | number | boolean;
+let ww:myType;
+ww = 'hello';
+ww = 123;
+ww = true;
+
+// 联合类型 & 交叉类型 
+let oo: {
+    name:string
+} & {
+    age?:number
+}
+
+oo = {
+    name:'王五',
+    age:18
+}