Deep Omit
约 149 字小于 1 分钟
2026-02-11
题目
Implement a typeDeepOmit, Like Utility types Omit, A type takes two arguments.
For example:
type obj = {
person: {
name: string;
age: {
value: number
}
}
}
type test1 = DeepOmit<obj, 'person'> // {}
type test2 = DeepOmit<obj, 'person.name'> // { person: { age: { value: number } } }
type test3 = DeepOmit<obj, 'name'> // { person: { name: string; age: { value: number } } }
type test4 = DeepOmit<obj, 'person.age.value'> // { person: { name: string; age: {} } }解题思路
待补充
答案
type DeepOmit = any验证
import type { Equal, Expect } from '@type-challenges/utils'
type obj = {
person: {
name: string
age: {
value: number
}
}
}
type cases = [
Expect<Equal<DeepOmit<obj, 'person'>, {}>>,
Expect<Equal<DeepOmit<obj, 'person.name'>, { person: { age: { value: number } } }>>,
Expect<Equal<DeepOmit<obj, 'name'>, obj>>,
Expect<Equal<DeepOmit<obj, 'person.age.value'>, { person: { name: string, age: {} } }>>,
]参考
无
