Skip to content

UnionLength #1387

@salisbury-espinosa

Description

@salisbury-espinosa

Type description + examples

from example of UnionMember

import type {UnionMember, IsNever} from 'type-fest';

type UnionLength<T, Acc extends any[] = []> =
	UnionMember<T> extends infer Member
		? IsNever<Member> extends false
			? UnionLength<Exclude<T, Member>, [...Acc, Member]>
			: Acc['length']
		: never;

type T1 = UnionLength<'foo' | 'bar' | 'baz'>;
//=> 3

type T2 = UnionLength<{a: string}>;
//=> 1

Type source

No response

Search existing types and issues first

  • I tried my best to look for it

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions