Skip to main content
Module

x/ts_toolbelt_unofficial/mod.ts>List.AtLeast

👷 TypeScript's largest type utility library, now on Deno
Latest
type alias List.AtLeast
import { type List } from "https://deno.land/x/ts_toolbelt_unofficial@1.1.0/mod.ts";
const { AtLeast } = List;

Make that at least one of the keys K are required in L at a time.

Examples

Example 1

import {L} from 'ts-toolbelt.ts'

type test0 = L.AtLeast<[1, 2, 3], 0> // [1, 2 | undefined, 3 | undefined]
type test1 = L.AtLeast<[1, 2, 3], 0 | 1> // [1, 2 | undefined, 3 | undefined] | [1 | undefined, 2, 3 | undefined]
type test2 = L.AtLeast<[1, 2, 3]>
// | [1, 2, 3]
// | [1, 2 | undefined, 3 | undefined]
// | [1 | undefined, 2, 3 | undefined]
// | [1 | undefined, 2 | undefined, 3]

Type Parameters

L extends List
optional
K extends Key = Keys<L>
definition: OAtLeast<ObjectOf<L>, `${K & number}` | K> extends infer U ? U extends unknown ? _ListOf<U & { }> : never : never