Documentation

type Binding​.BoundPathValue

Type definition for a property value, based on a property path.

type BoundPathValue<
T,
P extends string,
> = P extends `${infer K}.${infer Rest}`
? K extends keyof T
? undefined extends T[K]
? BoundPathValue<NonNullable<T[K]>, Rest & string> | undefined
: BoundPathValue<NonNullable<T[K]>, Rest & string>
: never
: P extends keyof NonNullable<T>
? undefined extends T
? NonNullable<T>[P] | undefined
: NonNullable<T>[P]
: never;

Related