типизированный кортеж или хеш на основании её параметров? Поясню (ну, очень условно):
                  
                  
                  const addComponents = <T extends UIObject>(args: T[]) => {
                  
                  
                      return args.map(item => item);
                  
                  
                  }
                  
                  
                  
                  
                  
                  addComponents([new Button(), new Label()]); // -> (Button | Label)[]
                  
                  
                  А хочется вместо (Button | Label)[] получить что-то что можно деструктуризовать и сразу использовать, например:
                  
                  
                  const [, $Label] = addComponents([new Button(), new Label()]);
                  
                  
                  $Label.setLabel('')
                  
                  
                
Можно попробовать описывать как T extends UIObject[] и args: T
по идее можно через перегрузки любую длину (то есть вариадики) вы не получите, но 1 2 3 4 вполне
Обсуждают сегодня