type DeepGet<Obj, Key extends string> = Obj extends unknown
? Key extends `${infer K}.${infer Rest}`
? K extends keyof Obj
? DeepGet<NonNullable<Obj[K]>, Rest>
: never
: Key extends keyof Obj
? Obj[Key]
: never
: never;type DeepGet<Obj, Key extends string> = Obj extends unknown
? Key extends `${infer K}.${infer Rest}`
? K extends keyof Obj
? DeepGet<NonNullable<Obj[K]>, Rest>
: never
: Key extends keyof Obj
? Obj[Key]
: never
: never;