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

如何在TypeScript中构建适配多数据模型的响应接口?

适配动态data类型的TypeScript响应接口方案

你可以通过泛型接口解决这个问题,把固定的响应结构抽成通用模板,让data字段的类型可以动态指定,既复用代码又保证类型安全。

1. 定义泛型响应接口

将原本的Response接口改成泛型形式,用<T>指代data数组的元素类型:

export interface ApiResponse<T> {
  count: number;
  data: T[];
  page: number;
  pageSize: number;
  totalCount: number;
}

2. 针对不同场景指定泛型参数

需要不同data类型时,给泛型传入对应类型即可:

  • 当data是ICard[]时:
// 定义卡片列表的响应类型
type CardListResponse = ApiResponse<ICard>;

// 使用示例
const cardResp: CardListResponse = {
  page: 1,
  pageSize: 250,
  count: 250,
  totalCount: 15851,
  data: [{ /* 符合ICard结构的对象 */ }]
};
  • 当data是ISets[]时:
// 定义集合列表的响应类型
type SetsListResponse = ApiResponse<ISets>;

// 使用示例
const setsResp: SetsListResponse = {
  page: 1,
  pageSize: 250,
  count: 250,
  totalCount: 15851,
  data: [{ /* 符合ISets结构的对象 */ }]
};

这种方式的优势是,固定响应字段(page、pageSize等)只需定义一次,后续新增其他data类型时,直接复用泛型接口即可,无需重复编写冗余代码。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:03:12