/**
 * 将给定泛型指定key设置为可选 其他必选
 */
type MakePropertyOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
/**
 * 将给定泛型指定key设置为必选 其他可选
 */
type MakePropertyRequired<T, K extends keyof T> = Required<Pick<T, K>> & Partial<Omit<T, K>>;
/**
 * 移除指定泛型的key 并设置为可选
 */
type RemoveProperty<T, K extends keyof T> = Partial<Omit<T, K>>;
