Search Docs
InferPropertyType<T, K>: K extends `${infer K1}.${infer K2}` ? K1 extends keyof T ? InferPropertyType<NonNullable<T[K1]>, K2> : never : K extends keyof T ? T[K] : never
T
K
K1
InferPropertyType
NonNullable
K2
never
• T
• K extends string
string
type A = { a?: { b?: { c: string } } } type B = InferPropertyType<A, "a"> // { b?: { c: string } } type C = InferPropertyType<A, "a.b"> // { c: string }
packages/core/src/utils/types.ts:13