Skip to main content
Module

x/ts_essentials/mod.ts>DeepPick

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

Recursively pick 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, DeepPick<ValueType, FilterValueType>> : T : T extends ReadonlyMap<infer KeyType, infer ValueType> ? Filter extends ReadonlyMap<KeyType, infer FilterValueType> ? ReadonlyMap<KeyType, DeepPick<ValueType, FilterValueType>> : T : T extends WeakMap<infer KeyType, infer ValueType> ? Filter extends WeakMap<KeyType, infer FilterValueType> ? WeakMap<KeyType, DeepPick<ValueType, FilterValueType>> : T : T extends Set<infer ItemType> ? Filter extends Set<infer FilterItemType> ? Set<DeepPick<ItemType, FilterItemType>> : T : T extends ReadonlySet<infer ItemType> ? Filter extends ReadonlySet<infer FilterItemType> ? ReadonlySet<DeepPick<ItemType, FilterItemType>> : T : T extends WeakSet<infer ItemType> ? Filter extends WeakSet<infer FilterItemType> ? WeakSet<DeepPick<ItemType, FilterItemType>> : T : T extends Array<infer ItemType> ? Filter extends Array<infer FilterItemType> ? Array<DeepPick<ItemType, FilterItemType>> : T : T extends Promise<infer ItemType> ? Filter extends Promise<infer FilterItemType> ? Promise<DeepPick<ItemType, FilterItemType>> : T : Filter extends Record<string, unknown> ? [K in keyof Tin keyof K extends keyof Filter ? K : never]: Filter[K & keyof Filter] extends true ? T[K & keyof T] : DeepPick<T[K & keyof T], Filter[K & keyof Filter]> : never