MST

星途 面试题库

面试题:TypeScript模板字面量模式匹配与递归类型结合的深度应用

实现一个高度复杂的TypeScript类型 `PathValue<T, P>`,`T` 是一个复杂的嵌套对象类型,`P` 是一个以点分隔的字符串类型,表示对象的路径。例如,`T = {a: {b: {c: string}}}`,`P = "a.b.c"`,该类型应返回 `string`。要求使用模板字面量模式匹配和递归类型来实现,同时要考虑路径不存在、对象属性为数组等复杂情况,并确保类型的严格性和准确性。
13.6万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
type PathValue<T, P extends string> = 
  P extends `${infer Head}.${infer Tail}` 
  ? Head extends keyof T
      ? Tail extends string 
          ? PathValue<T[Head], Tail>
          : never
      : never
  : P extends keyof T
      ? T[P]
      : never;