MST

星途 面试题库

面试题:TypeScript 类型体操之递归类型推导与元组操作

实现一个类型 `Zip`,它接受两个元组类型 `T1` 和 `T2` 作为参数,返回一个新的元组类型,其中新元组的每个元素是由 `T1` 和 `T2` 对应位置元素组成的元组。如果 `T1` 和 `T2` 长度不一致,以较短的元组长度为准。例如,`Zip<[1, 2], ['a', 'b', 'c']>` 应该返回 `[[1, 'a'], [2, 'b']]`。在实现过程中,需要通过类型递归和类型推导来完成。
45.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
type Zip<T1 extends any[], T2 extends any[]> = T1 extends [infer First1, ...infer Rest1]
  ? T2 extends [infer First2, ...infer Rest2]
      ? [[First1, First2], ...Zip<Rest1, Rest2>]
       : []
  : [];