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

x/ts_essentials/lib/mod.ts>DeepNonNullable

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

Like NonNullable but recursive

definition: T extends Builtin ? NonNullable<T> : T extends Map<infer K, infer V> ? Map<DeepNonNullable<K>, DeepNonNullable<V>> : T extends ReadonlyMap<infer K, infer V> ? ReadonlyMap<DeepNonNullable<K>, DeepNonNullable<V>> : T extends WeakMap<infer K, infer V> ? WeakMap<DeepNonNullable<K>, DeepNonNullable<V>> : T extends Set<infer U> ? Set<DeepNonNullable<U>> : T extends ReadonlySet<infer U> ? ReadonlySet<DeepNonNullable<U>> : T extends WeakSet<infer U> ? WeakSet<DeepNonNullable<U>> : T extends Promise<infer U> ? Promise<DeepNonNullable<U>> : T extends { } ? [K in keyof T]: DeepNonNullable<T[K]> : NonNullable<T>