首页 > 其他分享 >Omit 用于创建一个新的类型,该类型包含了原始类型`T`的所有属性,但排除了指定的键`K`

Omit 用于创建一个新的类型,该类型包含了原始类型`T`的所有属性,但排除了指定的键`K`

时间:2024-02-06 14:33:33浏览次数:23  
标签:string Omit 排除 WithoutLocation 类型 属性

在TypeScript中,Omit<T, K>是一个内置的实用类型(从TypeScript 3.5版本开始提供),用于创建一个新的类型,该类型包含了原始类型T的所有属性,但排除了指定的键K

其定义如下:

type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;

这个类型的工作原理是首先找出T的所有键(keyof T),然后使用Exclude来排除掉那些与K相匹配的键。最后通过Pick取出剩余的键及其对应的类型值。

举例说明:

interface Person {
  name: string;
  age: number;
  location: string;
}

type WithoutLocation = Omit<Person, 'location'>;

// 此时WithoutLocation 类型为:
// {
//   name: string;
//   age: number;
// }

在这个例子中,WithoutLocation类型就是从Person接口中剔除了location属性后的类型。

标签:string,Omit,排除,WithoutLocation,类型,属性
From: https://www.cnblogs.com/longmo666/p/18009669

相关文章

  • 【CPL-2023】W8笔记-数据类型
    数据类型charshortint通常表示为一个字长long通常表示位一个字长longlongdoublefloatchar语言发展两条线路强类型->接近系统底层弱类型数据类型c标准有的没有严格限制short<=int<=long而且与编译器类型也有关系类型所占机器位数与特定的编译器平台相......
  • 【CPL-2023】W2笔记-变量、类型、简单IO
    int类型范围-2^31~2^31-1UB未定义行为2^31-1+1的话会发生未定义行为,产生溢出时时未定义行为编译器的开发者可以以任意的行为来应对c标准中的未定义行为int型默认保持32比特/0或者%0会产生UB(未定义行为)/0为了兼容多个厂商的除法器而存在UB,有些除法器抛出错误,有......
  • vue2 bpmn添加属性栏
    安装"bpmn-js-properties-panel":"^1.6.1"引入样式库import{ BpmnPropertiesPanelModule, BpmnPropertiesProviderModule,}from"bpmn-js-properties-panel";import"bpmn-js-properties-panel/dist/assets/properties-panel.css"......
  • JAVA对象和属性
    对象对象实例举例,快速认识对象创建一个对象==实例化一个对象==把类实例化点击查看代码/***@authorLittleBear*@date2024-02-05-21:47*/publicclassobject{publicstaticvoidmain(String[]args){Tt=newT("xxm",111);//对象实......
  • 数据类型
    publicclass数据类型{publicstaticvoidmain(String[]args){//八大数据类型//整数intnum1=10;//最常用bytenum2=20;shortnum3=30;longnum4=30l;//Long类型要在数字后面加上L//浮点数:小数......
  • 数据类型转换
    publicclass类型转换{/*字节容量:byte、short、char-int-long-float-double(低——高)运算中,不同类型的数据先转换为同一类型,然后进行运算*///强制类型转换:高-低(类型)变量名publicstaticvoidmain(String[]args){inti=128;by......
  • 目录遍历(建立目录树,记录目录属性)仅适用于小样本
    directory.h#pragmaonce#include<windows.h>#include<tchar.h>#include<stdio.h>#include<tchar.h>#include<string>#include<stack>#include<codecvt>#include<vector>#defineFILE_NOT_IN_NODE-1classDirTreeNode{p......
  • Kubernetes 服务类型详解
    Kubernetes服务类型详解如今,Kubernetes已成为管理和扩展云原生应用程序的强大工具。组织需要利用高度可扩展且始终可用的功能来保持零停机时间,快速部署他们的软件。随着越来越多的应用程序被容器化和部署,容器的管理也变得越来越复杂。因此,软件的扩展成为一个问题,而这正是Kuber......
  • CSS3属性之 text-overflow:ellipsis
    语法:text-overflow:clip|ellipsis默认值为clip不显示省略标记clip:当前对象内文本溢出时不显示省略标记,而是将溢出部分裁剪。ellipsis:当对象内文本一处时显示省略标记(...)。 一、常见的单行文本溢出显示省略写法:text-overflow:ellipsis;overflow:hidden;white-sp......
  • 探索C语言的数据类型:解密编程世界的核心秘密
    ✨✨欢迎大家来到贝蒂大讲堂✨✨......