MST

星途 面试题库

面试题:TypeScript可选参数和默认参数在函数重载中的应用

编写一个TypeScript函数,利用函数重载,实现当传入不同数量参数(涉及可选参数和默认参数)时,函数执行不同逻辑并返回不同类型结果。请详细解释函数重载过程中可选参数和默认参数的作用机制。
15.9万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 函数重载声明
function addNumbers(a: number): number;
function addNumbers(a: number, b: number): number;
function addNumbers(a: number, b?: number, c: number = 10): number {
    if (b === undefined) {
        return a;
    } else if (c === undefined) {
        return a + b;
    } else {
        return a + b + c;
    }
}

可选参数和默认参数作用机制解释

  1. 可选参数:在函数声明 function addNumbers(a: number, b?: number, c: number = 10): number; 中,b 是可选参数。可选参数通过在参数名后加 ? 表示。当调用函数时可以不传递该参数,此时该参数的值为 undefined。在函数实现中,通过判断 b 是否为 undefined 来执行不同逻辑。例如,如果 bundefined,函数只返回第一个参数 a
  2. 默认参数:在上述函数声明中,c 是默认参数,值为 10。当调用函数时如果没有传递该参数,它会使用默认值。默认参数与可选参数不同,即使在函数重载声明中没有明确指定为可选(没有 ?),调用时若未传入也不会报错。在函数实现中,通过判断传入的参数情况,结合默认值来执行不同逻辑,例如,当 b 存在而 c 未传入时,使用默认值 10 进行计算。

函数重载允许我们定义多个同名但参数列表不同的函数声明,编译器会根据调用时实际传递的参数数量和类型来选择合适的函数实现。结合可选参数和默认参数,可以灵活地处理不同调用场景下的逻辑。