Stubify<T>: T extends Stubable
    ? Stub<T>
    : T extends Map<infer K, infer V>
        ? Map<Stubify<K>, Stubify<V>>
        : T extends Set<infer V>
            ? Set<Stubify<V>>
            : T extends (infer V)[]
                ? Stubify<V>[]
                : T extends ReadonlyArray<infer V>
                    ? ReadonlyArray<Stubify<V>>
                    : T extends {
                            [key: string | number]: unknown;
                        }
                        ? {
                            [K in keyof T]: Stubify<T[K]>
                        }
                        : T

Type Parameters

  • T