158. 特定属性可选
困难
实现一个高级工具类型 OptionalUndefined<T, Props>
,将 T
中所有可以为 undefined
的属性变成可选属性。此外,还可以传递一个可选的泛型 Props
,用于限制可以被修改的属性。
例如:
OptionalUndefined<{ value: string | undefined, description: string }>
// expected to be { value?: string | undefined; description: string }
OptionalUndefined<{ value: string | undefined, description: string | undefined, author: string | undefined }, 'description' | 'author'>
// expected to be { value: string | undefined; description?: string | undefined, author?: string | undefined }