面试题答案
一键面试// 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
函数可以用于string
、number
等各种类型,printArray
函数可以处理string[]
、number[]
等不同类型的数组,大大提高了代码的复用程度。 -
保证类型安全:在编译阶段,TypeScript能够根据传入的实际类型参数来检查函数内部的操作是否符合类型约束。例如
printArray
函数操作数组元素时,确保对元素的操作符合其实际类型,避免了在运行时出现类型错误。 -
实现多态效果:通过泛型,相同的函数逻辑可以应用于不同的具体类型,达到多态的效果。即函数的行为根据传入的类型参数而有所不同,但函数的核心逻辑保持一致。如
printArray
函数无论是处理string
数组还是number
数组,其遍历输出的逻辑不变,但处理的具体类型可以多样。