devtypes - v2.0.0
    Preparing search index...

    Type Alias DeepPartial<T>

    DeepPartial: T extends Function
    | Date
        ? T
        : T extends (infer U)[]
            ? DeepPartial<U>[]
            : T extends ReadonlyArray<infer U>
                ? ReadonlyArray<DeepPartial<U>>
                : T extends Map<infer K, infer V>
                    ? Map<K, DeepPartial<V>>
                    : T extends ReadonlyMap<infer K, infer V>
                        ? ReadonlyMap<K, DeepPartial<V>>
                        : T extends Set<infer U>
                            ? Set<DeepPartial<U>>
                            : T extends ReadonlySet<infer U>
                                ? ReadonlySet<DeepPartial<U>>
                                : T extends PlainObject
                                    ? { [K in keyof T]?: DeepPartial<(...)[(...)]> }
                                    : T

    Recursively make all properties optional.

    Type Parameters

    • T

      Object type to transform

    Traverses objects and arrays and applies optional modifiers at every nesting level without altering value types.

    Will keep functions and special types like Date unchanged.

    type User = { id: number; profile: { name: string; address: { city: string } } };
    type PartialUser = DeepPartial< User >;
    // { id?: number; profile?: { name?: string; address?: { city?: string } } }