Intersecting Incompatible Types

What

An incompatible intersection occurs when you combine types that have properties with the same name but different, non-overlapping types.

How

If you intersect a type that requires name to be a string with one that requires name to be a number, the resulting name property becomes never:

type A = { x: string };
type B = { x: number };

type C = A & B; // x is now string & number, which is impossible (never)

Why

TypeScript uses this to signal that the combination of types is logically impossible. It forces you to rethink your data structure or use nested objects rather than merging incompatible properties into a single flat type.

Summary

If an intersection results in never, it usually indicates a conflict in your type definitions that must be resolved through a design change.