MST

星途 面试题库

面试题:TypeScript中基本类型与复合类型在函数参数定义上的区别

请举例说明在TypeScript里,如何分别使用基本类型和复合类型来定义函数的参数,并阐述这两种方式在函数调用和类型检查上有什么不同。比如定义一个处理数字和数组的函数。
20.9万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

使用基本类型定义函数参数

在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同样会在编译阶段报错。

两种方式在函数调用和类型检查上的不同

  • 函数调用
    • 基本类型:调用时直接传入基本类型的值,较为简单直观。
    • 复合类型:调用时需传入符合特定结构的复合类型数据,如数组,需要注意数据结构的完整性。
  • 类型检查
    • 基本类型:主要检查值的类型是否匹配,相对简单直接。
    • 复合类型:不仅检查外层数据结构类型(如数组),还检查内部元素的类型,类型检查更为复杂和全面。