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

TypeScript如何提取两个已有interface的id类型合并为新interface?

实现方案

完全可以实现,你只需要使用 TypeScript 内置的索引访问类型(Indexed Access Types) 语法调整写法即可。

你示例中的点语法是错误的,TS 中提取接口指定属性的类型需要用接口名['属性名']的格式,正确的接口定义如下:

interface ILaserIdAndIOpticalUnitId {
    laserId: ILaser['id'];
    opticalHeadUnitId: IOpticalHeadUnit['id'];
}

效果说明

  • 该定义完全复用了已有两个接口的id类型,不需要额外维护重复的枚举值
  • 后续你给ILaser或者IOpticalHeadUnit的id新增/删除枚举值时,该接口的类型会自动同步更新,不需要修改多处代码
  • 可以直接解决你遇到的类型报错问题,后续传入参数不符合id枚举范围时TS会自动给出类型提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:00:06