@typedly/array
Version:
A TypeScript type definitions package to handle array-related operations.
14 lines (13 loc) • 592 B
TypeScript
/**
* @description Appends the unique value of `Element` type to the generic type variable `Array`.
* @export
* @template {readonly Type[]} Array
* @template {Type} Element
* @template [Type=any]
* @example
* type Example1 = AppendUnique<[1, 2, 3], 4>; // [1, 2, 3, 4]
* type Example2 = AppendUnique<[1, 2, 3], 2>; // [1, 2, 3] (unchanged)
* const example1: Example1 = [1, 2, 3, 4];
* const example2: Example2 = [1, 2, 3];
*/
export type AppendUnique<Array extends readonly Type[], Element extends Type, Type = any> = Element extends Array[number] ? Array : [...Array, Element];