/* ... */ };
                  
                  
                  type T1 = { tag: 1; /* ... */ };
                  
                  
                  type T2 = { tag: 2; /* ... */ };
                  
                  
                  и есть их юнион тип:
                  
                  
                  type T = T0 | T1 | T2;
                  
                  
                  можно ли как то из T вывести тип TX чтоб TX<0> выдавало T0, TX<1> - T1  и тд?
                  
                  
                  type TX<Tag extends T['tag']> = /* что здесь написать? */
                  
                  
                
Через infer ссылка
Обсуждают сегодня