51. 对象部分属性可选
中等
实现一个通用的工具类型 PartialByKeys<T, K> ,它接收两个类型参数 T 和 K 。
K 指定应设置为可选的 T 的属性集。当没有提供 K 时,它就和普通的 Partial<T> 一样使所有属性都是可选的。
例如:
interface User {
  name: string
  age: number
  address: string
}
type UserPartialName = PartialByKeys<User, 'name'> // expected to be { name?: string; age: number; address: string }