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

能否从非数组类型的TypeScript接口创建数组类型新接口?

当然可以不用手动编写,借助TypeScript的类型工具就能基于Whatever生成目标接口,下面给你两种实用的实现方式:

  • 批量将所有属性转为数组类型(适合Whatever所有属性都需要转成数组的场景):
type LoadsOfWhatever = {
  [K in keyof Whatever]: Whatever[K][]
};

这个映射类型会遍历Whatever的所有属性键,把每个属性的类型都包装成数组。

  • 仅修改指定属性为数组类型(适合只需要调整meh属性,保留其他原有属性的场景):
type LoadsOfWhatever = Pick<Whatever, Exclude<keyof Whatever, 'meh'>> & {
  meh: Whatever['meh'][]
};

这里先用Pick和Exclude保留Whatever中除meh外的所有属性,再通过交叉类型把meh的类型替换成数组版本,后续如果Whatever新增其他属性,这个类型会自动同步,不用手动修改。

如果你的Whatever只有meh这一个属性,两种写法效果完全一致,但第二种在接口扩展时更灵活。

内容的提问来源于stack exchange,提问作者Joseph Beuys' Mum

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:12:39