107. 实现深度 Omit

中等0

实现一个通用的工具类型 DeepOmit<T, U> ,类似于工具类型 Omit,该类型接收一个对象类型 T ,以及一个字符串类型 S ,将 T 中的命名为 S 属性(支持以 prop.secondeProp 的形式进行深层)去除。

例如:

type obj = {
  person: {
    name: string;
    age: {
      value: number
    }
  }
}

type test1 = DeepOmit<obj, 'person'>    // expected to be {}
type test2 = DeepOmit<obj, 'person.name'> // expected to be { person: { age: { value: number } } }
type test3 = DeepOmit<obj, 'name'> // expected to be { person: { name: string; age: { value: number } } }
type test4 = DeepOmit<obj, 'person.age.value'> // expected to be { person: { name: string; age: {} } }
评论(0)
题库

TypeScript

加载中...