关于泛型变量的疑问

来源:3-21 泛型 - 泛型类+泛型约束

安德鲁的小围巾

2021-01-22

function loggingIdentity<T>(arg: T[]): T[] {
  console.log(arg.length);
  return arg
}


let output = loggingIdentity([1,2])

“泛型函数 loggingIdentity,接收类型参数 T 和参数 arg,它是个元素类型是 T 的数组,并返回元素类型是T 的数组。 如果我们传入数字数组,将返回一个数字数组,因为此时 T 的的类型为 number。 这可以让我们把泛型变量 T 当做类型的一部分使用,而不是整个类型,增加了灵活性。”

这句话什么意思,为什么传入一个包含数字的数组,T的类型是number?不应该是数组类型吗?

写回答

1回答

ustbhuangyi

2021-01-28

这个参数 arg 的类型是 T[],它是一个数组,数组元素的类型是 T,所以当我们传入参数是 [1,2 ],数组的元素类型是 number,所以 T 就是 number 类型

0
0

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2631 学习 · 877 问题

查看课程