Allow using narrow type to match widen type.
e.g. number, 1 -> 1 | undefined.
Default to true.
Return value when a branch of the union T does not match Criteria.
Default to never.
If you want the type to behave more like JavaScript,
you can override it to return undefined.
Since it is a union, the result will be joined to the matched branch as union.
e.g. ElementMatch<1 | 2, 1> -> 1 | undefined
🦴 utilities 🔢 customizable
Filter the element
Tin an array or tuple to matchCriteria.