Documentation

type Binding​.BoundPath

Type definition for a property path.

type BoundPath<T> = T extends object
? {
[K in Extract<keyof T, string>]: T[K] extends object | undefined
? K | `${K}.${BoundPath2<T[K]>}`
: K;
}[Extract<keyof T, string>]
: never;
type BoundPath2<T> = T extends object
? {
[K in Extract<keyof T, string>]: T[K] extends object | undefined
? K | `${K}.${BoundPath3<T[K]>}`
: K;
}[Extract<keyof T, string>]
: never;
type BoundPath3<T> = T extends object
? {
[K in Extract<keyof T, string>]: T[K] extends object | undefined
? K | `${K}.${string}`
: K;
}[Extract<keyof T, string>]
: never;

Related