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