Annotated solution
Published September 1, 2026The solution
type IsNever<T> = [T] extends [never] ? true : falseThe common wrong answer
type IsNever<T> = T extends never ? true : falseThis returns never, not true. A conditional type with a naked type parameter distributes over unions, and never is the empty union — so there are no members to distribute over, the conditional never runs for any member, and the result is the empty union again.
Line by line
[T] extends [never]The tuple wrapper is not decoration: it makes the left side no longer a naked type parameter, which switches distribution off and lets the comparison happen on
neveritself.IsNever<never | string>never | stringis juststring—nevervanishes from a union the moment it joins one. The answer isfalsebecause the type that arrived was neverneverto begin with.
Takeaway
never is the empty union, and that single fact explains most of its strange behaviour: distribution over it does nothing, and it disappears from any union it joins.

