Get the middle element of the array by implementing a `GetMiddleElement` method, represented by an array Master advanced TypeScript type manipulation in this medium-level challenge on TypeScriptPro.
In this medium-level challenge, you'll implement a GetMiddleElement type that extracts the middle element(s) from a tuple type, returning a single-element tuple for odd-length arrays and a two-element tuple for even-length arrays.
Get the middle element of the array by implementing a GetMiddleElement method, represented by an array
If the length of the array is odd, return the middle element If the length of the array is even, return the middle two elements
For example
type simple1 = GetMiddleElement<[1, 2, 3, 4, 5]>, // expected to be [3]
type simple2 = GetMiddleElement<[1, 2, 3, 4, 5, 6]> // expected to be [3, 4]Change the following code to make the test cases pass (no type check errors).
type GetMiddleElement<T extends unknown[]> =
T extends []
? []
: T extends [infer Single]
? [Single]
: T extends [infer A, infer B]
? [A, B]
: T extends [unknown, ...infer Middle, unknown]
? GetMiddleElement<Middle>
: never;How it works:
[].[Single] is returned as-is, since one element is trivially the middle.[A, B] is also a base case, returning both elements as the "middle" pair.[unknown, ...infer Middle, unknown] and recurse on the remaining Middle portion.This challenge helps you understand recursive tuple manipulation and variadic tuple inference, and how to apply these concepts in real-world scenarios.
This challenge is originally from here.
Be the first to access the course, unlock exclusive launch bonuses, and get special early-bird pricing before anyone else.
Only 27 Spots left
Get 1 month early access
Pre-Launch discount