请谈谈 TypeScript 中 infer 关键字的具体用途和典型应用场景。
考察说明
考查对 TypeScript 类型推断高级特性的理解及应用能力
回答思路
- 【回答框架 1】infer 是 TypeScript 中用于在条件类型内部进行类型推断的关键字,它允许我们从待推断的类型中提取出部分类型,通常与 extends 和三元操作符结合使用。
- 【回答框架 2】在条件类型 T extends infer U ? ... : ... 中,infer U 会声明一个类型变量 U,TypeScript 会根据 T 的结构自动推断出 U 的类型,从而可以在 true 分支中使用 U。
- 【回答框架 3】典型应用:获取函数返回类型 ReturnType 通过 infer 提取函数的返回类型;提取数组元素类型;展开元组类型等。
- 【回答框架 4】通过 infer 可以编写类型工具,将复杂类型拆解和组合,增强类型系统的表达能力。
- 【关键点 1】infer 只能出现在条件类型的 extends 子句中,用于声明待推断的类型变量。
- 【关键点 2】infer 通常配合 extends 和三元操作符使用,根据条件类型的判断结果获取推断类型。
- 【关键点 3】典型场景包括获取函数返回类型、提取数组元素类型、展开元组等。