тип значение и не может иметь рекурсию на экземпляр самой себя
Может.
indirect enum Optional<T> {
case some(T)
case none
}
struct Node {
var payload: Int
var next: Optional<Node>
}
let node = Node(payload: 16, next: .some(Node(payload: 13, next: .none)))
На тайпскрипте сейчас пилят почти все, тут без шансов. Во флаттере ставку сделали а ленивых джава разработчиков, для которых котлин уже сложно, а дарт почти так же.
Можно записать так.
И Optional который написал я, от свифтового Optional ничем не отличается.
Может.
P.S. Очень интересно, для саморазвития.