MST

星途 面试题库

面试题:TypeScript 泛型与多态的结合应用

请使用TypeScript泛型实现一个`Identity`函数,它能接受任何类型的参数并返回该参数。同时,基于此函数,创建一个能处理不同类型数组元素的`printArray`函数,展示多态效果。并阐述泛型在这种多态实现中的作用。
10.9万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// Identity函数
function Identity<T>(arg: T): T {
    return arg;
}

// printArray函数
function printArray<T>(arr: T[]): void {
    arr.forEach((element) => {
        console.log(element);
    });
}

泛型在这种多态实现中的作用:

  • 增强代码的复用性Identity函数和printArray函数可以接受任何类型的参数,而不需要为每种类型单独编写函数。例如Identity函数可以用于stringnumber等各种类型,printArray函数可以处理string[]number[]等不同类型的数组,大大提高了代码的复用程度。

  • 保证类型安全:在编译阶段,TypeScript能够根据传入的实际类型参数来检查函数内部的操作是否符合类型约束。例如printArray函数操作数组元素时,确保对元素的操作符合其实际类型,避免了在运行时出现类型错误。

  • 实现多态效果:通过泛型,相同的函数逻辑可以应用于不同的具体类型,达到多态的效果。即函数的行为根据传入的类型参数而有所不同,但函数的核心逻辑保持一致。如printArray函数无论是处理string数组还是number数组,其遍历输出的逻辑不变,但处理的具体类型可以多样。