MST

星途 面试题库

面试题:TypeScript泛型函数的约束与多参数

编写一个泛型函数,它接受两个数组作为参数,并且要求这两个数组的元素类型相同。该函数返回一个新数组,新数组包含两个输入数组中对应位置元素的和(假设元素类型为数字)。请使用泛型约束来实现该功能,并处理可能的类型错误情况。
17.9万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function sumArrays<T extends number[]>(arr1: T, arr2: T): number[] {
    if (arr1.length!== arr2.length) {
        throw new Error('两个数组长度必须相同');
    }
    const result: number[] = [];
    for (let i = 0; i < arr1.length; i++) {
        if (typeof arr1[i]!== 'number' || typeof arr2[i]!== 'number') {
            throw new Error('数组元素必须为数字');
        }
        result.push(arr1[i] + arr2[i]);
    }
    return result;
}

在上述代码中:

  1. 定义了一个泛型函数sumArrays,泛型T被约束为number[]类型,确保传入的两个数组元素类型为数字。
  2. 首先检查两个数组长度是否相同,不同则抛出错误。
  3. 遍历数组,检查每个元素是否为数字类型,不是则抛出错误,是则将对应位置元素相加并放入结果数组。最后返回结果数组。