Skip to main content

9896 - 获取数组的中间元素

Answer TestCases

通过实现一个 GetMiddleElement 方法,获取数组的中间元素,用数组表示

如果数组的长度为奇数,则返回中间一个元素 如果数组的长度为偶数,则返回中间两个元素

  type simple1 = GetMiddleElement<[1, 2, 3, 4, 5]>, // 返回 [3]
type simple2 = GetMiddleElement<[1, 2, 3, 4, 5, 6]> // 返回 [3, 4]

Solution

type GetMiddleElement<T extends any[]> = T['length'] extends 0 | 1 | 2
? T
: T extends [any, ...infer M, any]
? GetMiddleElement<M>
: never

首先判断数组长度是否是 0 或者 1 或者 2, 若是则直接返回数组

否则, 通过 extendsinfer 组合将数组拆分成三部分, 中间部分类型命名为 M