面试题答案
一键面试使用基本类型定义函数参数
在TypeScript中,使用基本类型定义函数参数较为直接。例如,定义一个接收两个数字并返回它们之和的函数:
function addNumbers(a: number, b: number): number {
return a + b;
}
在函数调用时,必须传入两个符合number
类型的值:
let result = addNumbers(5, 3);
在类型检查上,TypeScript会严格检查传入的参数是否为number
类型。如果传入非数字类型的值,如字符串,TypeScript会在编译阶段报错。
使用复合类型定义函数参数
以处理数组为例,复合类型可以用来定义更复杂的数据结构作为函数参数。例如,定义一个接收数字数组并返回数组中所有数字之和的函数:
function sumArray(numbers: number[]): number {
return numbers.reduce((acc, num) => acc + num, 0);
}
在函数调用时,需要传入一个number
类型的数组:
let arrayResult = sumArray([1, 2, 3]);
在类型检查上,TypeScript会确保传入的参数是一个数组,并且数组中的元素类型都是number
。如果传入的数组元素类型不符合,或者传入的不是数组,TypeScript同样会在编译阶段报错。
两种方式在函数调用和类型检查上的不同
- 函数调用:
- 基本类型:调用时直接传入基本类型的值,较为简单直观。
- 复合类型:调用时需传入符合特定结构的复合类型数据,如数组,需要注意数据结构的完整性。
- 类型检查:
- 基本类型:主要检查值的类型是否匹配,相对简单直接。
- 复合类型:不仅检查外层数据结构类型(如数组),还检查内部元素的类型,类型检查更为复杂和全面。