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

如何提取对象数组中属性的所有可选值并实现TypeScript自动补全

TypeScript 提取对象数组指定属性的取值联合类型实现自动补全

要实现从对象数组中提取某一属性的所有取值作为联合类型,利用TypeScript类型系统做自动补全,实现方法如下:

注意要点

  • 必须给数组加常量断言(as const):默认情况下TypeScript会将对象的字符串属性推导为宽泛的string类型,无法获取精确的字面量取值,常量断言可以强制TS推导最精确的只读字面量类型。

完整实现代码

// 定义数组并添加as const常量断言
const arr = [{test:'option 1'},{test: 'option 2'}] as const

// 提取test属性所有取值的联合类型
type TestType = typeof arr[number]['test']

// 此时变量t仅可赋值为 'option 1' 或 'option 2',编辑器会自动补全可选值
let t: TestType = ''

语法解释

  • typeof arr:获取数组arr对应的TS类型
  • [number]:遍历数组所有数字下标,得到数组所有元素的联合类型
  • ['test']:提取数组元素中test属性的类型,最终得到所有取值的联合类型'option 1' | 'option 2'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:45:00