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

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

TypeScript元组元素批量包装解决方案

要实现将元组的每个元素都用MyClass包装,你需要利用TypeScript的元组映射特性,修改Remap类型为条件类型:

class MyClass<T> {
    foo?: T
}

type Input = [string, number, boolean]

// 修改后的Remap类型
type Remap<T> = T extends readonly any[] 
  ? { [K in keyof T]: MyClass<T[K]> } 
  : MyClass<T>

type Output = Remap<Input> 
// Output 类型为 [MyClass<string>, MyClass<number>, MyClass<boolean>],符合预期

说明

  • 当输入T是元组(或只读元组)时,通过索引遍历的方式,将元组每个位置的元素T[K]传入MyClass,生成对应位置的包装类型,最终组成新的元组。
  • 若输入T不是元组(比如单个原始类型),则直接返回MyClass<T>,保留对非元组输入的兼容处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 23:25:55