1_泛型.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //指在定义函数、接口、类的时候,不与先执行具体的类型,而是在使用的时候再去指定的一种特性
  2. (() => {
  3. //创建一个函数,根据指定数量的count和数据value创建一个包含count个value的数组
  4. // function creatArray(count: number, value: any): any[] {
  5. // const arr: any[] = []
  6. // for (let i = 0; i < count; i++) {
  7. // arr.push(value)
  8. // }
  9. // return arr
  10. // }
  11. // const arr1 = creatArray(4, 11)
  12. // const arr2 = creatArray(6, 'aa')
  13. // console.log(arr1[0].toFixed())
  14. // console.log(arr2[0].split(''))
  15. function creatArray2<T>(count: number, value: T) {
  16. const arr: Array<T> = []
  17. for (let i = 0; i < count; i++) {
  18. arr.push(value)
  19. }
  20. return arr
  21. }
  22. const arr3 = creatArray2<number>(11,3)
  23. console.log(arr3)
  24. const arr4 = creatArray2<string>(4,'cc')
  25. console.log(arr4)
  26. // console.log(arr3[0].toFixed())
  27. // console.log(arr3[0].split(''))
  28. // console.log(arr4[0].split(''))
  29. // console.log(arr4[0].toFixed())
  30. //多个泛型参数的函数
  31. function swap<K,V>(a:K,b:V): [K,V] {
  32. return[a,b]
  33. }
  34. const result = swap<string,number>('abc',123)
  35. console.log(result)
  36. console.log(result[0].length,result[1].toFixed())
  37. })()