134. 实现深度 Pick
困难
实现一个高级的工具类型 DeepPick<T, S>
,它扩展了工具类型 Pick
,该类型接受两个参数。
例如:
type Obj = {
name: 'hoge',
age: 20,
friend: {
name: 'fuga',
age: 30,
family: {
name: 'baz',
age: 1
}
}
}
type T1 = DeepPick<Obj, 'name'>
// expected to be { name : 'hoge' }
type T2 = DeepPick<Obj, 'name' | 'friend.name'>
// expected to be { name : 'hoge' } & { friend: { name: 'fuga' }}
type T3 = DeepPick<Obj, 'name' | 'friend.name' | 'friend.family.name'>
// expected to be { name : 'hoge' } & { friend: { name: 'fuga' }} & { friend: { family: { name: 'baz' }}}