134. 实现深度 Pick

困难0

实现一个高级的工具类型 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' }}}
评论(0)
题库

TypeScript

加载中...