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

TypeScript实现将键数组映射为对应属性值元组类型

TypeScript 实现按指定键顺序提取值的元组类型

要实现从对象类型中按指定键数组的顺序提取对应值的元组类型,TypeScript 4.0及以上版本可以通过元组映射类型直接实现,完全满足你要的“类型层面有序Object.values”效果:

实现代码

// 定义基础类型
type A = { a: string; b: number; c: boolean };
type B = ["b", "a"];

// 核心类型工具:按指定键数组顺序提取值元组
type MapProps<T extends object, K extends readonly (keyof T)[]> = {
  [I in keyof K]: T[K[I]];
};

// 使用示例
type Result = MapProps<A, B>; // 最终类型为 [number, string]

原理说明

  • 对泛型K(指定顺序的键元组)进行索引遍历,[I in keyof K]会遍历元组的每个位置索引
  • 每个索引位置I对应的键是K[I],通过T[K[I]]取出对象类型T中该键对应的值类型
  • 最终生成的类型会严格保持K数组的顺序,成为值类型组成的元组,而非对象类型

内容的提问来源于stack exchange,提问作者Adam B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:47:12