Skip to main content
The Deno 2 Release Candidate is here
Learn more
Module

x/ts_essentials/lib/types.ts>DeepOmit

All basic TypeScript types in one place 🤙
Latest
type alias DeepOmit
import { type DeepOmit } from "https://deno.land/x/ts_essentials@v9.1.2/lib/types.ts";

Recursively omit deep properties

Type Parameters

T
Filter extends DeepModify<T>
definition: T extends Builtin ? T : T extends Map<infer KeyType, infer ValueType> ? Filter extends Map<KeyType, infer FilterValueType> ? Map<KeyType, DeepOmit<ValueType, FilterValueType>> : T : T extends ReadonlyMap<infer KeyType, infer ValueType> ? Filter extends ReadonlyMap<KeyType, infer FilterValueType> ? ReadonlyMap<KeyType, DeepOmit<ValueType, FilterValueType>> : T : T extends WeakMap<infer KeyType, infer ValueType> ? Filter extends WeakMap<KeyType, infer FilterValueType> ? WeakMap<KeyType, DeepOmit<ValueType, FilterValueType>> : T : T extends Set<infer ItemType> ? Filter extends Set<infer FilterItemType> ? Set<DeepOmit<ItemType, FilterItemType>> : T : T extends ReadonlySet<infer ItemType> ? Filter extends ReadonlySet<infer FilterItemType> ? ReadonlySet<DeepOmit<ItemType, FilterItemType>> : T : T extends WeakSet<infer ItemType> ? Filter extends WeakSet<infer FilterItemType> ? WeakSet<DeepOmit<ItemType, FilterItemType>> : T : T extends Array<infer ItemType> ? Filter extends Array<infer FilterItemType> ? Array<DeepOmit<ItemType, FilterItemType>> : T : T extends Promise<infer ItemType> ? Filter extends Promise<infer FilterItemType> ? Promise<DeepOmit<ItemType, FilterItemType>> : T : Filter extends Record<string, unknown> ? [K in keyof Tin keyof K extends keyof Filter ? [Filter[K]] extends [true] | [never] ? never : K : K]: K extends keyof Filter ? Filter[K & keyof Filter] extends DeepModify<T[K]> ? DeepOmit<T[K], Filter[K & keyof Filter]> : T[K] : T[K] : never