面试题答案
一键面试function combineData<T extends string | number>(
basicArray: T[],
complexArray: { value: T, description: string }[]
): { basic: T, complex: { value: T, description: string } }[] {
return basicArray.map((basic, index) => ({
basic,
complex: complexArray[index]
}));
}
在这个实现中,通过泛型 T
约束了 basicArray
数组元素的类型,同时也用 T
来定义 complexArray
数组中对象的 value
属性类型,这样确保了两个数组之间类型的一致性。基本类型通过泛型 T
来传递类型信息,复合类型基于 T
来构建其内部结构。类型系统在此过程中,依据泛型的定义和约束,在编译时进行类型检查,确保传入的参数类型和返回值类型都符合预期,从而保证了类型安全。