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

如何在TypeScript中从现有接口剔除指定属性生成新接口?

从现有TypeScript接口中剔除指定属性的解决方案

嘿,这个需求太常见啦!在TypeScript里,要从已有的接口(比如你的PostsInfo)中剔除特定属性来生成新接口,用内置的**Omit工具类型**就能轻松搞定,比调整继承结构灵活多了。

具体实现步骤

首先假设你的原始PostsInfo接口是这样的:

interface PostsInfo {
  id: number;
  title: string;
  md_content: string;
  comment_count: number;
  // 其他你定义的属性...
}

要生成剔除comment_count属性的PostsInfoWithoutComment,直接用Omit即可:

// 用type定义的方式(推荐,更简洁)
type PostsInfoWithoutComment = Omit<PostsInfo, 'comment_count'>;

// 或者如果你偏好interface形式,也可以这么写
interface PostsInfoWithoutComment extends Omit<PostsInfo, 'comment_count'> {}

扩展说明

  • Omit的第一个参数是你要处理的原始类型/接口,第二个参数是要剔除的属性名(支持多个属性,用|分隔,比如Omit<PostsInfo, 'comment_count' | 'md_content'>就能同时剔除两个属性)。
  • 对比你之前用“父接口+继承”的方式(适合给父接口加属性),Omit专门解决“从现有类型中删属性”的场景,不需要改动原有接口的继承关系,衍生多个不同剔除规则的接口也非常方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:03:11