#10•Medium

Tuple to Union

Implement a generic `TupleToUnion<T>` which covers the values of a tuple to its values union. Learn conditional types with `infer`, union type manipulation, tuple manipulation in this medium-level challenge on TypeScriptPro.

In this medium-level challenge, you'll implement a generic TupleToUnion<T> which converts the values of a tuple to a union.

Challenge Instructions: Tuple to Union

Medium

Implement a generic TupleToUnion<T> which covers the values of a tuple to its values union.

For example

type Arr = ['1', '2', '3']
 
type Test = TupleToUnion<Arr> // expected to be '1' | '2' | '3'

Change the following code to make the test cases pass (no type check errors).

ChallengeSolution
// Video Solution: https://youtube.com/watch?v=RbGjjPWUetI

/* _____________ Your Code Here _____________ */

type TupleToUnion<T> = any

/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '../helpers'

type cases = [
  Expect<Equal<TupleToUnion<[123, '456', true]>, 123 | '456' | true>>,
  Expect<Equal<TupleToUnion<[123]>, 123>>,
]

Pro Challenge

Get access to all 200+ challenges, including every medium, hard, and extreme one.

One-time payment, lifetime access. 30-day money-back guarantee.

Video Walkthrough

Detailed Explanation

To convert a tuple to a union, we use indexed access:

[object Object]

How it works:

T[number] accesses all numeric indices of the tuple - this produces a union of all tuple element types.

This challenge is originally from here.

Share this challenge

Related Challenges

Learn the Concepts

Become a TypeScript Pro

Track your progress through 200+ hands-on challenges. Free, sign in with GitHub.

Or start solving right away: explore all TypeScript challenges