Я не могу понять логику терминов union types и типов пересечений в TypeScript.
Прагматически, если свойства разных типов являются наборами свойств, если я их совмещаю с оператором &, результирующий тип будет объединением этих множеств. Следуя этой логике, я бы ожидал, что такие типы называются типами union. Если я объединю их с | , Я могу использовать только общие свойства их, пересечение множеств.
Википедия, похоже, поддерживает эту логику:
Набор мощности (множество всех подмножеств) любого данного непустого множества S образует булеву алгебру, алгебру множеств, с двумя операциями ∨: = ∪ (объединение) и ∧: = ∩ (пересечение).
Однако, по словам typescriptlang.org, это точно противоположно: & используется для создания типов пересечений и | используется для типов объединения.
Я уверен, что есть еще один способ взглянуть на него, но я не могу понять.