На чем пересекаются эти типы:
T1 = string
T2 = string[]
Что такое T3 = T1 && T2?
Это undefined или это string? Когда я попытался запустить его в VisualStudio Code, у меня появился тип string, но разве это не undefined или что-то еще?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Прежде всего, типы пересечений определяются с помощью одного &. Когда вы выполняете type T3 = string && string[], правое выражение оценивается как string из-за того, как работает логический А ТАКЖЕ, поэтому ваш редактор показывает новый тип как string.
Чтобы ответить на ваш вопрос, type T3 = string & string[] создаст тип ни одинstringниundefined. При наведении указателя мыши на переменную типа T3 можно увидеть, что это просто пересечение этих двух типов.
Однако иметь такой тип бессмысленно, поскольку что-то не может быть одновременно string и string[], поэтому вы не сможете ничего ему присвоить.