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

TypeScript如何在一个interface内复用已预先定义的其他interface?

TypeScript interface 复用问题解答

在TypeScript中完全支持在interface内部复用其他已定义的interface作为字段类型,你写的示例代码本身就是正确的复用逻辑。

TypeScript的类型系统天然支持接口的组合复用,你可以像使用string、number这类基础类型一样,直接把已定义的interface作为字段的类型标注使用。你给出的api_data接口已经实现了需求:所有被标注为api_data类型的对象,其details字段必须完全符合details_接口的结构,amount字段必须完全符合amount_接口的结构,不符合结构的赋值会直接触发TypeScript的类型错误。

以下是对应接口的正确使用示例:

// 符合类型规范的示例对象
const requestData: api_data = {
  details: {
    id: 2024,
    name: "用户信息"
  },
  amount: {
    amount: 100,
    type: "积分"
  }
}

如果你需要把其他interface的属性直接合并到当前interface作为顶层字段,而非嵌套为子字段,也可以使用extends关键字实现继承复用:

// 继承多个interface的写法
interface api_data extends details_, amount_ {
  // 额外扩展自定义字段
  updateAt: string
}

// 此时api_data类型的对象结构如下:
const data: api_data = {
  id: 2024,
  name: "用户信息",
  amount: 100,
  type: "积分",
  updateAt: "2024-01-01"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:24:02