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

在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属性后的类型。

posted @ 2024-02-06 14:31  龙陌  阅读(58)  评论(0)    收藏  举报