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

TypeScript定义无限自递归嵌套评论API响应的Interface

TypeScript 无限层级嵌套评论API响应类型定义方案

无限嵌套comments字段的实现核心是利用TypeScript接口的自引用递归特性,不需要手动枚举每一层嵌套结构,即可支持任意深度的评论层级,完整实现如下:

1. 抽离公共作者信息结构

所有评论节点携带的评论人信息结构统一抽离,避免重复定义:

interface CommentUser {
  id: number;
  first_name: string;
  last_name: string;
  full_name: string;
}

2. 定义递归评论节点类型

评论节点类型中,comments字段直接引用当前节点类型本身,即可自动适配无限层级嵌套:

interface CommentNode {
  id: number;
  comment: string;
  approved: boolean;
  archived: number;
  pinned: number;
  reported: number;
  created_at: string;
  updated_at: string;
  // 核心递归逻辑:子评论是和当前结构完全一致的节点数组
  comments: CommentNode[];
  commented: CommentUser;
}

3. 定义完整接口响应类型

对应API返回的根结构:

interface CommentListResponse {
  data: CommentNode[];
}

可选适配调整

  • 如果实际业务中部分层级的comments或commented字段可能缺省,给对应字段加可选标记?即可,例如comments?: CommentNode[]
  • 如果archived/pinned/reported字段实际是0/1的布尔语义,也可以根据后端实际返回定义为字面量联合类型0 | 1获得更严格的类型提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:54:20