You need to enable JavaScript to run this app. TypeScript类型操作符:实现对象类型值的联合类型提取
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript类型操作符:实现对象类型值的联合类型提取

提取对象类型字段值联合类型的实现

核心类型实现

直接基于TypeScript原生的索引访问类型能力实现,无需复杂递归或条件类型:

type ExtractValueType<T> = T[keyof T];

效果验证

使用题目给出的示例测试推导结果:

type Foo = {x: string, y: number}
type Bar = ExtractValueType<Foo> 
// 实际推导得到 Bar = string | number,完全符合预期

实现逻辑

  • 该实现是社区通用的ValueOf工具类型的标准写法:keyof操作符会生成对象类型T所有公开键的联合类型,对示例中的Foo来说,结果就是"x" | "y"
  • 当索引访问的参数是键联合类型时,TypeScript会自动遍历所有键,返回每个键对应值类型的联合,刚好匹配需求。

补充说明

  • 该实现天然兼容数组类型输入,传入数组时会自动返回数组元素的联合类型
  • 如果需要排除特定字段(比如可选字段、只读字段),可以先对keyof T的结果做类型过滤,再执行索引访问即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 21:15:07