面试题答案
一键面试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;
}
在上述代码中:
- 定义了一个泛型函数
sumArrays
,泛型T
被约束为number[]
类型,确保传入的两个数组元素类型为数字。 - 首先检查两个数组长度是否相同,不同则抛出错误。
- 遍历数组,检查每个元素是否为数字类型,不是则抛出错误,是则将对应位置元素相加并放入结果数组。最后返回结果数组。