面试题答案
一键面试function mapArray<T, U>(arr: T[], callback: (item: T) => U): U[] {
return arr.map(callback);
}
// 使用示例
const numbers = [1, 2, 3];
const squaredNumbers = mapArray(numbers, (num) => num * num);
// 这里泛型T推导为number,U推导为number,确保类型安全,
// 如果传入的回调函数返回值类型与预期不符,TypeScript会报错
在这个场景下,泛型 T
代表输入数组的元素类型,U
代表回调函数处理后返回值的类型。通过在函数定义时绑定泛型,TypeScript 编译器可以在编译阶段进行类型检查。如果传入的回调函数返回值类型与 U
不匹配,或者传入的数组类型与 T
不匹配,编译器会给出错误提示,从而确保类型安全。这样可以避免在运行时出现类型相关的错误,提高代码的稳定性和可维护性。