MST

星途 面试题库

面试题:TypeScript泛型在简单排序算法中的应用

请使用TypeScript泛型实现一个简单的冒泡排序函数,该函数能够对不同类型(如数字数组、字符串数组)的数组进行排序,并解释泛型在这个算法实现中起到了哪些优势。
11.2万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function bubbleSort<T extends number | string>(arr: T[]): T[] {
    const length = arr.length;
    for (let i = 0; i < length - 1; i++) {
        for (let j = 0; j < length - 1 - i; j++) {
            if ((arr[j] as any) > (arr[j + 1] as any)) {
                const temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    return arr;
}

泛型在这个算法实现中的优势:

  1. 代码复用:通过使用泛型,同一个 bubbleSort 函数可以用于多种数据类型(如数字数组、字符串数组)的排序,而不需要为每种数据类型编写单独的排序函数,提高了代码的复用性。
  2. 类型安全:在编译阶段,TypeScript 能够根据传入的实际类型参数对代码进行类型检查,确保只有支持比较操作的类型(如 numberstring)才能传递给 bubbleSort 函数,避免了在运行时出现类型不匹配的错误,增强了代码的健壮性。