-
-
Couldn't load subscription status.
- Fork 0
type tuple
Nicholas Berlette edited this page Jun 19, 2025
·
1 revision
export type IsTuple<T, True = true, False = false> = T extends
readonly [] | readonly [unknown, ...unknown[]] ? True : False;Resolves to True if
A is a tuple, which is an array with a
pre-determined length and type for each of its elements. This check does not
resolve to True for arrays such as
string[] or Array<number> (since they are not tuples), but does for
[1, 2, 3]. Any other type of value will resolve to
False.
T-
True(default:true) -
False(default:false)
Types
import type { IsTuple } from "@nick/is/type";
type A = IsTuple<[1, 2, 3]>; // true
type B = IsTuple<string[]>; // false
type C = IsTuple<Array<number>>; // falseimport type { IsTuple } from "@nick/is/type";
// using the conditional type parameters in a custom type
type EnsureTuple<T> = IsTuple<T, T, never>;
type A = EnsureTuple<[1, 2, 3]>; // [1, 2, 3]
type B = EnsureTuple<readonly []>; // readonly []
type C = EnsureTuple<string[]>; // never
type D = EnsureTuple<Array<number>>; // never