MST

星途 面试题库

面试题:TypeScript中泛型绑定时机的基础应用

请编写一个TypeScript函数,该函数接受一个数组和一个回调函数作为参数。要求在函数定义时绑定泛型,使得函数能够正确处理不同类型数组,并将数组元素通过回调函数处理后返回新数组。例如传入一个数字数组和一个平方的回调函数,返回每个数字平方后的新数组。说明泛型绑定在这个场景下如何确保类型安全。
38.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
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 不匹配,编译器会给出错误提示,从而确保类型安全。这样可以避免在运行时出现类型相关的错误,提高代码的稳定性和可维护性。