На проектах обычно ребята оставляли либо полное говно с any(что плохая практика) либо описывали всё нормально. Но конкретно чтобы такие костыли делать...
так вот - и тогда оказывается что keyof - ведет себя контрвариантно, и поэтому при наличии юниона извлекает ключи которые есть только во всех частях юниона
чтобы решить эту проблему мы делаем distributed conditional type пользуясь тем, что если у нас в conditional type лежит дженерик с юнионом - тайпскрипт применит операцию к каждой части юниона
Может тогда стоит бороться с наивными предубеждениями которые стоят возле технологии а не с самой технологией? :) Высказывания мол "скоро умрет как coffescript" звучит как попытка убедить что оно уже мертво а не прогнозирование