2.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. // 对象
  2. let a1: object;
  3. a1 = {};
  4. a1 = [];
  5. a1 = function () { }
  6. /**
  7. * 对象语法
  8. * {属性名:属性类型,属性名?:属性类型}
  9. * 属性名后面添加问号 该属性变成可选属性
  10. */
  11. let b1: {
  12. a: number,
  13. b: string,
  14. c?: boolean,
  15. // 可以添加 任意属性的 任意类型的 数据
  16. [propName: string]: any
  17. }
  18. b1 = {
  19. a: 1,
  20. b: '12',
  21. c: true
  22. }
  23. b1 = {
  24. a: 11,
  25. b: '122',
  26. d: 32
  27. }
  28. /**
  29. * 函数语法:
  30. * (形参:类型,形参:类型...) => 类型
  31. */
  32. let x: (q: number, z: string) => string;
  33. x = (q: number, z: string) => {
  34. return q + z
  35. }
  36. x(12, '21')
  37. /**
  38. * 数组语法
  39. */
  40. let r: string[];
  41. r = ['121', 'f']
  42. let u = [];
  43. u = [1, 2, '3333']
  44. let o: Array<boolean>;
  45. o = [true, false,]
  46. // 元祖:固定长度的数组
  47. // let r: [number, number, number, number, string];
  48. // 枚举
  49. enum Sex {
  50. man,
  51. woman
  52. }
  53. let j: {
  54. name: string,
  55. age: number,
  56. sex: Sex
  57. }
  58. j = { name: "图图", age: 3, sex: Sex.man }
  59. console.log(j.sex == Sex.man ? '男' : "女")
  60. // 类型别名
  61. type myType = 1 | 2 | 3 | 4;
  62. let uu: myType;
  63. let oo: myType;
  64. // 逻辑运算符 &
  65. let pp: {
  66. name: string
  67. } & {
  68. age: number
  69. }
  70. pp = {
  71. name: '孙悟空',
  72. age: 10
  73. }