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

如何定义包含MyType所有属性省略版本的TypeScript类型?

解决方案

你需要的是让MyType的所有属性变为可选,从而允许任意省略部分(或全部)属性的对象,这时候应该用TypeScript内置的Partial<T>工具类型,而不是Omit。

示例代码

首先定义你的基础类型:

type MyType = {
    propertyA: string;
    propertyB: number;
    // 其他属性...
}

然后定义MyOtherType:

type MyOtherType = {
    propertyC: MyType | Partial<MyType>;
}

说明

Partial<MyType>会将MyType中的所有属性转换为可选属性,这意味着propertyC可以接受:

  • 完整的MyType对象(所有属性都存在)
  • 只包含部分属性的对象,比如{propertyA: "test"}或{propertyB: 456}
  • 空对象{}

而你之前尝试的Omit<MyType, any>会直接移除所有属性,得到的是一个空类型,这显然不符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:44:56