TypeScript - Omit

64 阅读1分钟

学习TypeScript记录

题目来自于:github.com/type-challe…

题目

不使用 Omit 实现 TypeScript 的 Omit<T, K> 泛型。

Omit 会创建一个省略 K 中字段的 T 对象。

例如:

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

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

const todo: TodoPreview = {
  completed: false,
}

实现

type MyOmit<T, K extends keyof T> = {
  [key in Exclude<keyof T, K> ]: T[key];
}

验证

image.png