Какая разница между объединением типов (`A | B`) и пересечением типов (`A & B`)?
СобеседованиеИнтерфейсы и типы
- Union (
A | B) — значение одного из вариантов; нужен narrowing для доступа к специфичным свойствам.
- Intersection (
A & B) — значение должно удовлетворять всем вариантам одновременно (объединение свойств/контрактов).
- Пересечение несовместимых примитивов даёт
never: string & number → never
- Union распределяется в условных типах (distributive conditional types)
- Исчерпывающие проверки (exhaustiveness) используют
never для union