UNPKG

type-plus

Version:
6 lines 715 B
import type { IsEqual } from '../equal/equal.js'; export type DropMatch<A extends Readonly<Array<unknown>>, Criteria> = A['length'] extends 0 ? A : A extends readonly [infer Head, ...infer Tail] ? Tail['length'] extends 0 ? undefined extends Criteria ? DropMatch.ExcludeUnionOfEmptyTuple<Head extends Criteria ? [] : [Head]> : DropMatch.ExcludeUnionOfEmptyTuple<Head extends Criteria ? [] : [Head]> : Exclude<Head, Criteria> extends never ? DropMatch<Tail, Criteria> : [Exclude<Head, Criteria>, ...DropMatch<Tail, Criteria>] : never[]; export declare namespace DropMatch { type ExcludeUnionOfEmptyTuple<A> = IsEqual<A, []> extends true ? A : Exclude<A, []>; } //# sourceMappingURL=tuple_plus.drop_match.d.ts.map