Open menu dropdown
DeepRequired
Recursive variant of TypeScript's `Required<T>` — strips `?` from every property at every depth.
The mirror image of DeepPartial. Useful when you want a fully-resolved internal type derived from a public options interface.
Usage
ts
import type { DeepRequired } from '@maz-ui/utils'
interface Options {
cache?: {
ttl?: number
strategy?: 'memory' | 'disk'
}
}
type ResolvedOptions = DeepRequired<Options>
// {
// cache: {
// ttl: number
// strategy: 'memory' | 'disk'
// }
// }API
ts
type DeepRequired<T> = Required<{
[K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>
}>