В джулии типы вообще не совсем внятные. В тайп скрипте они же не реализуются. Я имею в виду именно как оно будет реализовываться? Как отдельная сущность?
Примерно как тайпалиасы - живут только во время компиляции.
То есть, Any | String == Any, Nothing | String == String, A String | Exception в компайл-тайме так и останется, а в рантайме будет Any. Тогда T? можно будет тупо как T | null представить. Надо только с цейлоном поиграться и посмотреть, как в ИДЕ они рендерятся, может там что-то удобное придумали.