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