学习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];
}