typelab / utils / ObjectPathValue
type ObjectPathValue<T, K> = K extends "" ? T : K extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? Rest extends ObjectPath<T[Key]> ? ObjectPathValue<T[Key], Rest> : ObjectPath<T[Key]> : never : K extends keyof T ? T[K] : K extends `${infer Key extends number}` ? Key extends keyof T ? T[Key] : never : never;Get the type of a property based on a given path.
| Type Parameter | Description |
|---|---|
|
|
The |
|
|
The path |
The type of the property at the specified path.
type Obj = { a: { b: number }; c: string };
type ValueType = ObjectPathValue<Obj, 'a.b'>; // number