вынести тип отдельно const promisify = <A, R>(fn: (arg: A, b: (err: unknown, data: R) => void) => void): (arg: A) => Promise<R> => {
                  
                  
                    return arg => new Promise((resolve, reject) => {
                  
                  
                      fn(arg, (err, data) => {
                  
                  
                        if (err) reject(err);
                  
                  
                        resolve(data);
                  
                  
                      });
                  
                  
                    })
                  
                  
                  };
                  
                  
                  
                  
                  
                  Сделал тип 
                  
                  
                  type promisify<A, R> = (fn: (arg: A, b: (err: unknown, data: R) => void) => void) => (arg: A) => Promise<R>;
                  
                  
                  
                  
                  
                  Но как его теперь применить к функции?
                  
                  
                  
                  
                  
                  вот так не работает
                  
                  
                  const promisify: promisify = fn => {
                  
                  
                    return arg => new Promise((resolve, reject) => {
                  
                  
                      fn(arg, (err, data) => {
                  
                  
                        if (err) reject(err);
                  
                  
                        resolve(data);
                  
                  
                      });
                  
                  
                    })
                  
                  
                  };
                  
                  
                
Дженерик типы потерялись
 Bohdan
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Bohdan
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  и что нужно что бы они вернулись?
Что значит «применить его к функции»? У функции есть свой тип, у переменной — свой. Ты пытаешься присвоить переменной тип, а потом присвоить этой переменной функцию. Это немного «нахера». Переменной нельзя присвоить полиморфный тип (такой, как у тебя)
вернуть их в сигнатуру или явно указать тип для fn, чтобы тайпскрипт попробовал самостоятельно выяснить тип для дженериков
Обсуждают сегодня