首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Typescript: Omit<T,K>不适用于枚举

Typescript中的Omit<T, K>是一种类型操作符,用于从类型T中排除属性K。它返回一个新的类型,该类型是T类型的子集,但不包含属性K。

然而,Omit<T, K>不适用于枚举类型。枚举类型是一种特殊的数据类型,用于定义一组命名的常量值。它们在编译时被转换为对象,其中属性名是枚举成员的名称,属性值是枚举成员的值。

由于枚举类型的成员是固定的且不可修改的,因此无法使用Omit<T, K>操作符来排除枚举成员。如果需要排除枚举成员,可以考虑使用其他类型操作符,如Exclude<T, U>。

Exclude<T, U>是另一种类型操作符,用于从类型T中排除可以赋值给类型U的属性。它返回一个新的类型,该类型是T类型的子集,但不包含可以赋值给类型U的属性。

以下是一个示例:

代码语言:txt
复制
enum Color {
  Red = "RED",
  Green = "GREEN",
  Blue = "BLUE"
}

type ExcludeColor = Exclude<Color, Color.Red>;
// ExcludeColor的类型为"GREEN" | "BLUE"

在上面的示例中,我们使用Exclude<Color, Color.Red>来排除枚举类型Color中的Red成员。最终,ExcludeColor的类型将是"GREEN" | "BLUE",不包含Red成员。

总结:Typescript的Omit<T, K>操作符不适用于枚举类型。如果需要排除枚举成员,可以考虑使用Exclude<T, U>操作符来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Typescript 高级用法以及项目实战问题

    本文主要介绍 TypeScript 的高级用法,适用于TypeScript 已经有所了解或者已经实际用过一段时间的同学,分别从类型、运算符、操作符、泛型的角度来系统介绍常见的 TypeScript...a : 10; 而 || 表达式,大家知道的,则对 false、''、NaN、0 等逻辑空值也会生效,不适于我们做对参数的合并。...type Pick = { [P in K]: T[P] } 我们还是用上面的Animal定义,看一下 Pick 如何使用。...=> void), Function>; // string | number Omit 此工具可认为是适用于键值对对象的 Exclude,它会去除类型 T 中包含 K 的键值对。...type Omit = Pick> 在定义中,第一步先从 T 的 key 中去掉与 K 重叠的 key,接着使用 Pick 把 T 类型和剩余的 key

    1.9K50

    TS 中的类型验算,高级通用 API 实现

    前言由于现在工作使用的技术栈是 React、TypeScript 和 ahooks,工作中需要用到大量的类型定义,特此记录一下一些常用的 类型通用API 封装。...T 类型中的 null 及 undefined 类型Parameters:获取函数的参数类型,将每个参数类型放在一个元组中Omit:从类型 T 中剔除 K 中的所有属性Pick:从类型 T 中挑选 K 中的所有属性Exclude:提取存在于 T,但不存在于 U 的类型组成的联合类型Extract:提取联合类型 T 和联合类型 U 的所有交集Record...typeof:在类型上下文中获取变量或者属性的类型in:常用来遍历枚举类型TS compiler 内部实现的类型Uppercase:构造一个将字符串转大写的类型Lowercase:构造一个将字符串转小写的类型...部分类型变为可选type Optional = Omit & Partial>; type ArticleTodo = Optional

    17810

    深入学习下 TypeScript 中的泛型

    将泛型应用于类型的语法类似于将泛型应用于接口和类的语法。看看下面的代码: type MyIdentityType = T 此泛型类型返回作为类型参数传递的类型。...keyof T 运算符用于返回具有 T 中所有可用属性名称的联合。然后使用 K in 语法指定新类型的属性是返回的联合类型中当前可用的所有属性 T键。...这将创建一个名为 K 的新类型,它绑定到当前属性的名称。这可用于使用语法 T[K] 访问原始类型中此属性的类型。在这种情况下,您将属性的类型设置为布尔值。...这种类型的实现如下所示: type Readonly = { readonly [K in keyof T]: T[K] } 注意:由于 Readonly 已经内置到 TypeScript 中...} Omit 是一种使用 TypeScript 默认附带的 Omit 助手构建的类型。

    39K30

    深入学习下 TypeScript 中的泛型

    我们还将使用泛型创建映射类型和条件类型,这将帮助我们创建可以灵活应用于代码中所有必要情况的 TypeScript 组件。...通用类型通常用于创建辅助类型,尤其是在使用映射类型时。TypeScript 提供了许多预构建的帮助程序类型。...keyof T 运算符用于返回具有 T 中所有可用属性名称的联合。然后使用 K in 语法指定新类型的属性是返回的联合类型中当前可用的所有属性 T键。...这将创建一个名为 K 的新类型,它绑定到当前属性的名称。这可用于使用语法 T[K] 访问原始类型中此属性的类型。在这种情况下,您将属性的类型设置为布尔值。...}Omit 是一种使用 TypeScript 默认附带的 Omit 助手构建的类型。

    15010
    领券