Logos DX
    Preparing search index...

    Type Alias PathValue<T, P>

    PathValue: P extends `${infer Key}.${infer Rest}`
        ? Key extends keyof T
            ? PathValue<T[Key], Rest>
            : T extends Map<infer K, infer V>
                ? K extends string
                | number
                    ? Key extends `${K}` ? PathValue<V, Rest> : never
                    : PathValue<V, Rest>
                : T extends Set<infer V>
                    ? Key extends `${number}` ? PathValue<V, Rest> : never
                    : T extends any[]
                        ? Key extends `${number}`
                            ? T extends (infer U)[] ? PathValue<U, Rest> : never
                            : never
                        : never
        : P extends keyof T
            ? T[P]
            : T extends Map<infer K, infer V>
                ? K extends string | number ? P extends `${K}` ? V : never : V
                : T extends Set<infer V>
                    ? P extends `${number}` ? V : never
                    : T extends any[]
                        ? P extends `${number}` ? T extends (infer U)[] ? U : never : never
                        : never

    Extracts the value type at a specific string path.

    Enables type-safe deep property access with compile-time validation of both path validity and return type correctness. Supports:

    • Regular object property access
    • Array/tuple index access
    • Map key access
    • Set index access

    Type Parameters

    • T
    • P extends string
    interface User {
    profile: { name: string; age: number; };
    tags: Set<string>;
    metadata: Map<string, { value: string }>;
    }
    type UserName = PathValue<User, 'profile.name'>; // string
    type Tag = PathValue<User, 'tags.0'>; // string
    type MetaValue = PathValue<User, 'metadata.someKey.value'>; // string