//Omit<T,K>:去掉T类型中K类型
//Partial<T>:将T类型变成可选的
//Pick<T, K>:在T类型中挑选出K类型
type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>
例如:
interface Product {
name: string,
price: number,
type: "food" | "drink",
stock: number
}
type ProductOptions = Optional<Product, 'stock'>
将Product中的 'stock'变成了可选