2.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // object 是js中的一个类型
  2. // 基本数据类型:number string undefined null boolean
  3. // 引用数据类型: Object(Array object function)
  4. let a:object;
  5. a = {};
  6. a = [];
  7. a = function() {};
  8. /**
  9. * 对象语法
  10. * {属性名:属性值,属性名?:属性值...}
  11. * 属性名后添加问号 相当于给当前属性设置可选开关
  12. */
  13. let b:{a:number,b?:string};
  14. b = {a:1,b:'1'};
  15. b = {a:5};
  16. /**
  17. * [propName:string]:any 可以添加任意属性的任意类型的数据
  18. */
  19. let c:{a:number,b?:string,[propName:string]:any};
  20. c = {a:10,b:'12',c:14,d:true};
  21. // let b = {a:1,b:1}
  22. /**
  23. * 函数语法:
  24. * (形参:类型,形参:类型....) => 类型
  25. */
  26. let d:(a:number,b:number) => number;
  27. d = function fn1(a:number,b:number):number {
  28. return a+b;
  29. };
  30. let e:(c:string,d:string) => string;
  31. e = function fn2(a:string,b:string):string {
  32. return a+b;
  33. }
  34. /**
  35. * 数组语法
  36. * 类型[];
  37. */
  38. let f = [];
  39. // 字符串类型数组
  40. let g:string[];
  41. g = ['1','1','1']
  42. let h:number[];
  43. h =[2,5,7,9]
  44. let i:Array<boolean>
  45. // i = [1];
  46. i = [false];
  47. /**
  48. * 元祖:固定长度的数组
  49. */
  50. let j:[number,boolean,string];
  51. j = [1,false,'22'];
  52. /**
  53. * 枚举
  54. * enum 对象名称 {
  55. * 定义的枚举值
  56. * }
  57. */
  58. enum Sex {
  59. man,
  60. woman
  61. }
  62. let k: {
  63. name:string,
  64. age:number,
  65. sex:Sex
  66. }
  67. k = {name:"孙悟空",age:20,sex: Sex.man};
  68. console.log(k.sex === Sex.man ? "男性" : "女性");
  69. // 类型别名
  70. type myType = 1|2|3|4;
  71. let l:myType;
  72. let m:myType;
  73. let n:myType;
  74. // 逻辑运算符 &
  75. let o: {name:string} & {age:number};
  76. o = {name:'孙悟空',age:20};
  77. export{}