You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建带泛型返回类型的函数时的语法困惑

解读TypeScript中T[K][]的语法含义

先拆解这个语法的两部分:

  • T[K]是TypeScript的索引访问类型,作用是获取泛型T中,键为K的属性对应的类型。比如你定义的Person类型里,若K是"name",T[K]就是string;若K是"age",T[K]就是number。
  • 末尾的[]是数组类型标记,它作用在整个T[K]上,表示「由T[K]类型的元素组成的单层数组」,完全不是嵌套数组。

结合你的代码例子来看:
当你调用getUsers([{name: "Alice", age: 30, location: "NY"}], "name")时,K被推断为"name",T[K]就是string,所以函数的返回类型就是string[](字符串数组);如果传的key是"age",返回类型就变成number[](数字数组)。

另外注意你当前代码里的小问题:map回调里只做了console.log,没有返回值,这会导致函数实际返回undefined[],不符合你声明的返回类型。正确写法应该是返回users.map(user => user[key]),这样才会得到符合T[K][]类型的数组。

内容的提问来源于stack exchange,提问作者Joe Consterdine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 14:22:11