2.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // 引用数据类型 Object(object/array/function)
  2. let a: object;
  3. // a =1;
  4. a = [];
  5. a = {};
  6. a = function () {};
  7. /**
  8. * 对象:
  9. * {
  10. * 属性名:属性值
  11. * ...
  12. * 在属性后 添加问号 相当于给当前属性设置可选开关
  13. * }
  14. */
  15. let b: {
  16. a: number;
  17. c: string;
  18. d?: boolean;
  19. // 可以添加任意属性 任意类型
  20. [propName: string]: any;
  21. };
  22. // b = {
  23. // a:12,
  24. // c:'11'
  25. // }
  26. b = {
  27. a: 12,
  28. c: "11",
  29. d: false,
  30. };
  31. b = {
  32. a: 12,
  33. c: "11",
  34. // d: false
  35. };
  36. b = {
  37. a: 12,
  38. c: "11",
  39. e: false,
  40. f: "12",
  41. };
  42. /**
  43. * 函数
  44. *
  45. */
  46. let g: (a: number, b: number) => number;
  47. g = function fn1(a, b) {
  48. return a + b;
  49. };
  50. g(8, 9);
  51. /**数组
  52. * let xxx:type[];
  53. * let yyy:Array<type>
  54. */
  55. let x: string[];
  56. x = ["1", "2"];
  57. // let y:Array<boolean>=[1,2];
  58. // let y:Array<boolean>=[true,false];
  59. // 元祖:固定长度的数组
  60. let z: [number, boolean, number];
  61. z = [1, true, 1];
  62. // 枚举
  63. enum Sex {
  64. man,
  65. woman,
  66. }
  67. let o: {
  68. name: string;
  69. age: number;
  70. sex: Sex;
  71. };
  72. o = {
  73. name: "LiLi",
  74. age: 18,
  75. sex: Sex.woman,
  76. };
  77. console.log(o.sex === Sex.man ? "男" : "女");
  78. // 类型别名
  79. type myType = 1|2|3|4;
  80. let p:myType = 2;
  81. // 逻辑运算符 &
  82. let r:{name:string}&{age:number};
  83. r = {
  84. name:'孙悟空',
  85. age: 18
  86. }
  87. export {};