devtypes
    Preparing search index...

    Type Alias Paths<T, D>

    Paths: [D] extends [never]
        ? never
        : T extends object
            ? {
                [K in keyof T]-?: K extends string
                | number
                    ? T[K] extends object ? K | Join<K, Paths<T[K], Prev[D]>> : K
                    : never
            }[keyof T]
            : ""

    Build all nested paths for an object up to a reasonable recursion depth

    Type Parameters

    • T
    • D extends number = 5
    type User = { id: number; profile: { name: string; address: { city: string; zip: number } } };
    type UserPaths = Paths<User>;
    // "id" | "profile" | "profile.name" | "profile.address" | "profile.address.city" | "profile.address.zip"