Skip to content

Unique

Since 1.4.0

Removes duplicate elements from a tuple, preserving only the first occurrence of each unique type.

Signature

typescript
export type Unique<T extends unknown[], Seen extends unknown[] = []> = T extends [
	infer First,
	...infer Rest,
]
	? First extends Seen[number] ? Unique<Rest, Seen> : [First, ...Unique<Rest, [...Seen, First]>]
	: []

Parameters

ParameterDescription
TThe tuple to remove duplicates from
SeenInternal accumulator for tracking seen elements (default: [])

Examples

Basic Usage

typescript
import type { Unique } from 'uni-types'

type Result = Unique<[1, 2, 1, 3, 2, 4]> // [1, 2, 3, 4]

With String Literals

typescript
import type { Unique } from 'uni-types'

type Result = Unique<['a', 'b', 'a', 'c', 'b']> // ['a', 'b', 'c']
  • Find - Find first matching element
  • Reverse - Reverse a tuple
  • Includes - Check if tuple includes element

Released under the MIT License.