面试题答案
一键面试类型推断自动进行的示例
在TypeScript中,函数参数和返回值的类型推断会根据函数的实现和调用方式自动进行。例如:
// 函数参数和返回值类型自动推断
function add(a, b) {
return a + b;
}
let result = add(1, 2);
// 这里,TypeScript根据传入的1和2推断出a和b为number类型,返回值也为number类型
显式注解明确函数类型的示例
// 显式注解函数类型
function subtract(a: number, b: number): number {
return a - b;
}
let subResult = subtract(5, 3);
// 明确指定a、b为number类型,返回值也是number类型
优缺点对比
- 类型推断(隐式)的优点:
- 简洁:在简单场景下,代码看起来更简洁,无需额外编写类型注解,提高开发效率。比如上述
add
函数,无需显式声明参数和返回值类型。 - 自动适应:TypeScript能根据上下文准确推断类型,减少开发者手动声明类型的工作量,尤其在类型较为明显的场景。
- 简洁:在简单场景下,代码看起来更简洁,无需额外编写类型注解,提高开发效率。比如上述
- 类型推断(隐式)的缺点:
- 可读性受限:对于复杂逻辑或较大代码库,仅通过函数实现推断类型,可能导致代码可读性变差,后续维护人员不易快速理解参数和返回值类型。
- 潜在错误隐患:如果函数实现改变,类型推断可能产生意外结果,不易察觉潜在的类型错误。
- 显式注解的优点:
- 增强可读性:在代码阅读时,能一目了然地知道函数参数和返回值类型,对于大型项目和团队协作,有助于其他开发者快速理解代码逻辑。
- 减少错误:明确的类型声明有助于编译器在编译阶段就发现类型不匹配错误,提前避免运行时错误。
- 显式注解的缺点:
- 增加代码量:对于简单函数,显式注解会增加代码量,使代码显得冗余,例如上述
subtract
函数,相比隐式类型推断,增加了类型声明部分。 - 维护成本:当函数参数或返回值类型改变时,需要同时修改显式注解,增加了维护成本。
- 增加代码量:对于简单函数,显式注解会增加代码量,使代码显得冗余,例如上述