2.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // let a = {}
  2. // 常规的对象类型
  3. // {属性名:类型,属性名:类型,....}
  4. // ? 当前属性 可以存在或者不存在
  5. // 扩展属性 允许额外定义任意属性 [propName:string]:any
  6. let a:{name:string,age?:number,[propName:string]:any};
  7. a = {
  8. name:"图图",
  9. age: 3
  10. }
  11. a = {name:"12",sex:'男',a:'1',b:2,c:3}
  12. // 函数
  13. // (形参:类型,形参:类型,...) => 类型;
  14. let b:(x:number,y:string) => string;
  15. b = function(a:number,b:string):string {
  16. return a+b
  17. }
  18. b(1,"1")
  19. // 数组
  20. // 定义格式:
  21. // 类型[] / Array<类型>
  22. // 元组 Tuple:固定长度 固定顺序 固定类型的数组称为元组
  23. let c:[number,number,string,number];
  24. // let c:number[];
  25. // let c:Array<number>;
  26. // let c:any[];
  27. c = [1,2,'3',4];
  28. // 枚举 Enum
  29. // 批量定义固定常亮 常用于状态 分类 选项
  30. // 默认从0开始自动递增赋值 可直接枚举名取值
  31. // 把固定的选项变成有名字的常亮
  32. enum Sex {
  33. man, //0
  34. woman // 1
  35. // a = 2
  36. }
  37. let d :{
  38. name:string,
  39. age:number,
  40. sex:Sex
  41. }
  42. d = {
  43. name:"图图",
  44. age: 3,
  45. sex:Sex.man
  46. }
  47. console.log(d.sex == Sex.man ? '男' : '女')
  48. // 类型别名:通过type给类型起名字
  49. //格式: type 名字 = 类型
  50. // 1.联合类型
  51. type Sex1 = "man" | "woman";
  52. // type Sex1
  53. let e:Sex1;
  54. e = "man";
  55. // 2.字面量
  56. type status = 1|2|3;
  57. let f:status;
  58. f = 1;
  59. // 3.对象
  60. type info = {
  61. name: string,
  62. age: number,
  63. address?:string
  64. }
  65. // let g:info = {
  66. // }
  67. // 交叉类型
  68. // 合并多个类型 变量必须同时满足所有类型的属性要求
  69. let h:{name:string} & {age:number};
  70. h = {
  71. name:"图图",
  72. age: 3
  73. }
  74. export {}