effect-io-ai

Package: effect
Module: Tuple

Tuple.isTupleOfAtLeast

Determine if an Array is a tuple with at least N elements, narrowing down the type to TupleOfAtLeast.

An Array is considered to be a TupleOfAtLeast if its length is at least N.

Example

import * as assert from "node:assert"
import { isTupleOfAtLeast } from "effect/Tuple"

assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 3), true);
assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 2), true);
assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 4), false);

const arr: number[] = [1, 2, 3, 4];
if (isTupleOfAtLeast(arr, 3)) {
  console.log(arr);
  // ^? [number, number, number, ...number[]]
}

Signature

declare const isTupleOfAtLeast: { <N extends number>(n: N): <T>(self: ReadonlyArray<T>) => self is TupleOfAtLeast<N, T>; <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOfAtLeast<N, T>; }

Source

Since v3.3.0