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

在TypeScript中如何将类型数组映射为另一个类型数组?

TypeScript 元组元素泛型包装实现方案

你可以直接通过 TypeScript 原生的映射类型遍历元组的每个索引位类型,对每个元素做Wrapper包装即可,无需额外递归逻辑,原生会保留元组的长度、可选属性等原有特性。

完整代码示例如下:

// 示例Wrapper类型定义,可替换为你实际的Wrapper逻辑
type Wrapper<T> = {
  value: T
}

// 原元组类型
type CoolTuple = [string, number, boolean]

// CoolGeneric泛型实现
type CoolGeneric<T extends any[]> = {
  [K in keyof T]: Wrapper<T[K]>
}

验证转换结果:

// 最终得到的Result类型为 [Wrapper<string>, Wrapper<number>, Wrapper<boolean>],完全符合需求
type Result = CoolGeneric<CoolTuple>

补充说明:

  • 上述写法兼容定长元组、带可选元素的元组、带剩余参数的元组,所有原有元组特性都会被保留
  • 如果需要处理嵌套元组的场景,可以在映射逻辑中增加递归判断即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:15:04