2.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. // object:object function array
  2. /**
  3. * 对象语法
  4. * {属性名:类型,属性名?:类型...}
  5. */
  6. // ? 代表属性可选 添加到属性名后
  7. // [propName:string]:any 在当前对象后添加任意个数的任意类型的任意数据
  8. let a:{name:string,age?:number,[propName:string]:any};
  9. a = {
  10. name:"孙悟空",
  11. age: 20
  12. }
  13. a = {
  14. name:"猪八戒"
  15. }
  16. a = {
  17. name:"孙悟空",
  18. age: 20,
  19. sex: "男",
  20. hobby: "吃仙丹"
  21. }
  22. /**
  23. * 函数语法
  24. * (形参:类型,形参:类型,形参:类型,) => 返回值类型
  25. */
  26. let b:(name:string,age:number) => string;
  27. b = function(name:string,age:number):string {
  28. return name + age;
  29. }
  30. console.log(b('11',2))
  31. /**
  32. * 数组语法:
  33. * 类型[]
  34. * Array<类型>
  35. */
  36. let c:[];
  37. // 字符串数组
  38. let d:string[];
  39. d = ['1','1','1','2'];
  40. let e:boolean[];
  41. e = [true,false]
  42. let f:Array<string>;
  43. f = ['2','2','3']
  44. /**
  45. * 元祖:固定长度的数组
  46. */
  47. let g:[number,string,boolean];
  48. g = [1,'2',true];
  49. /**
  50. * 枚举
  51. * enum 对象名称 {
  52. * value
  53. * }
  54. */
  55. enum Sex {
  56. man,
  57. woman
  58. }
  59. let h:{
  60. name:string,
  61. age:number,
  62. sex:Sex
  63. }
  64. h = {
  65. name:"孙悟空",
  66. age:20,
  67. sex: Sex.man
  68. }
  69. console.log(h.sex === Sex.man ? '男' : '女');
  70. // 逻辑运算符 &
  71. let i:{name:string} & {age:number};
  72. i = {
  73. name:"孙悟空",
  74. age:20
  75. }
  76. // 类型别名
  77. type myType = 1|2|3|4;
  78. let j:myType;
  79. let k:myType;
  80. let l:myType;
  81. let m:myType;
  82. export{};