/** * Evaluates to `true` if `T` is `any`. `false` otherwise. * (c) https://stackoverflow.com/a/68633327/5290447 */ type IsAny = unknown extends T ? [keyof T] extends [never] ? false : true : false; export type PathImpl = Key extends string ? IsAny extends true ? never : T[Key] extends Record ? `${Key}.${PathImpl> & string}` | `${Key}.${Exclude & string}` : never : never; export type PathImpl2 = PathImpl | keyof T; export type Path = keyof T extends string ? PathImpl2 extends infer P ? P extends string | keyof T ? P : keyof T : keyof T : never; export type PathValue> = P extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? Rest extends Path ? PathValue : never : never : P extends keyof T ? T[P] : never; export {};