MST

星途 面试题库

面试题:TypeScript基本类型与复合类型在类型推断与泛型中的深度应用

在TypeScript中,实现一个通用的函数 `combineData`,该函数接收两个参数,第一个参数是一个包含基本类型(如string、number)值的数组,第二个参数是一个根据第一个数组中元素类型而变化的复合类型数组。例如,如果第一个数组是 `string` 类型数组,第二个数组就是包含 `{ value: string, description: string }` 这样结构的对象数组。利用类型推断和泛型来确保类型安全,阐述在此过程中基本类型与复合类型是如何相互影响以及类型系统是如何工作的。
24.2万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
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 来构建其内部结构。类型系统在此过程中,依据泛型的定义和约束,在编译时进行类型检查,确保传入的参数类型和返回值类型都符合预期,从而保证了类型安全。