Skip to content

Latest commit

 

History

History
36 lines (25 loc) · 852 Bytes

Omit.md

File metadata and controls

36 lines (25 loc) · 852 Bytes
标题 标签
Omit(忽略类型) extends(继承)

忽略类型。

  • 使用 keyof 提取任意值的 key 属性,然后 K 继承它。
  • 使用 Pick挑选排除掉(Exclude)既是 T 的属性又在 K 当中存在的属性。

代码如下:

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

使用方式:

interface Todo {
  title: string;
  description: string;
  completed: boolean;
}

type TodoPreview = MyOmit<Todo, 'description' | 'title'>;

const todo: TodoPreview = {
  completed: false
};

应用场景

如下所示,鼠标悬浮到对应的类型变量可以查看类型。