type-fest/source/non-empty-tuple.d.ts
2024-07-14 12:53:17 +02:00

22 lines
412 B
TypeScript

/**
Matches any non-empty tuple.
@example
```
import type {NonEmptyTuple} from 'type-fest';
const sum = (...numbers: NonEmptyTuple<number>) => numbers.reduce((total, value) => total + value, 0);
sum(1, 2, 3);
//=> 6
sum();
//=> Error: Expected at least 1 arguments, but got 0.
```
@see {@link RequireAtLeastOne} for objects
@category Array
*/
export type NonEmptyTuple<T = unknown> = readonly [T, ...T[]];