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

TypeScript如何从数组类型中推断元素类型?

解决TypeScript数组元素类型提取问题

首先得明确:{ abc: string }[]是普通数组类型,[{ abc: string }]是长度固定为1的元组类型,TypeScript里这俩不是同一个东西,所以你写的Head工具类型只能匹配元组,对普通数组不生效。

要提取普通数组的元素类型,有两种简单方法:

方法1:索引访问类型

直接用数组的number索引来获取元素类型:

type ElementType<T extends any[]> = T[number];

// 测试
type TestType = { abc: string }[];
type ExtractedType = ElementType<TestType>; // 结果为 { abc: string }

方法2:条件类型推断

通过条件判断匹配数组类型,推断出元素类型:

type ArrayElement<T> = T extends (infer U)[] ? U : never;

// 测试
type ExtractedType2 = ArrayElement<TestType>; // 结果同样为 { abc: string }

这两种方法都能完美提取普通数组的元素类型,相比元组匹配的方式更通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:39:32