AD
https://github.com/Girgias/intersection-types
Я даже не знаю как это откоментировать и стоит ли. Насколько крутые были все изменения начиная с 5.4 до 7.4 настолько же убогой мерзостью язык пытаются сделать теперь. Все обновления можно поеделить на два вида:
1. Бесполезный синтаксический сахар, который ухудшает чтение.
2. Реально вредные изменения, которые провоцируют разработчика на уебищные архитектурные решения.
Здесь у нас явно второй случай. Причем в доке к RFC мы видим милые примеры вида:
/** @var Traversable&Countable */Которые в реальных проектах превратятся в:
/** @var Traversable&Countable&Convertable&HashMapable&Array&Moveble&Yadolboeble&SomethigElseble&ITD */
С
какой целью и зачем это делается мне непонятно, жаль только чем уебищнее RFC с тем большей легкостью оно проходит одобрение :(А вам нравится куда движется язык?
К любому stateful классу можно захотеть прилепить JsonSerializable и особой боли от этого не будет. Хотя, если добавить его же в иерархию основного интерфейса, боли, наверное, будет меньше)