react-zoom-pan-pinch
Version:
Zoom and pan html elements in easy way
16 lines (12 loc) • 417 B
text/typescript
/* eslint-disable @typescript-eslint/ban-types */
export type DeepNonNullable<T> = T extends (...args: any[]) => any
? T
: T extends any[]
? DeepNonNullableArray<T[number]>
: T extends object
? DeepNonNullableObject<T>
: T;
export type DeepNonNullableArray<T> = Array<DeepNonNullable<NonNullable<T>>>;
export type DeepNonNullableObject<T> = {
[P in keyof T]-?: DeepNonNullable<NonNullable<T[P]>>;
};