MST

星途 面试题库

面试题:TypeScript剩余参数在函数重载中的运用

编写一个TypeScript函数,该函数支持两种调用方式:一种是传入一个字符串参数,返回该字符串的长度;另一种是传入多个数字参数,返回这些数字的平均值。使用函数重载和剩余参数...args来实现此功能,并说明这样做的好处。
28.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function calculateLengthOrAverage(str: string): number;
function calculateLengthOrAverage(...nums: number[]): number;
function calculateLengthOrAverage(param: string | number, ...args: number[]): number {
    if (typeof param ==='string') {
        return param.length;
    } else {
        let sum = param;
        for (let num of args) {
            sum += num;
        }
        return sum / (args.length + 1);
    }
}

好处

  1. 代码清晰:通过函数重载,不同调用方式的逻辑被清晰地分开,增强了代码的可读性和可维护性。调用者可以明确知道传入不同类型参数时函数的预期行为。
  2. 类型安全:TypeScript在编译阶段就能检查参数类型,避免运行时错误。比如调用 calculateLengthOrAverage("hello") 时,如果错误传入数字,TypeScript会给出类型错误提示。
  3. 灵活性:利用剩余参数 ...args,可以方便地处理数量不定的数字参数,使得函数在计算平均值时更加通用,适应不同数量数字的计算需求。