принимала разное количество аргументов в зависимости от типов агрументов? Пробую так:
                  
                  
                  
                  
                  
                  const setObj = <T extends ObjectType | null>(
                  
                  
                        type: T,
                  
                  
                        id: T extends ObjectType ? ObjectId : void
                  
                  
                      ) => {
                  
                  
                        if (type === null) {
                  
                  
                          // ...
                  
                  
                          return;
                  
                  
                        }
                  
                  
                        // Здесь считает, что type может быть null, а id - void
                  
                  
                      }
                  
                  
                  
                  
                  
                  setObj('type', 1); // ошибки нет
                  
                  
                  setObj(null); // Error:(29, 5) TS2554: Expected 2 arguments, but got 1.
                  
                  
                
тебе нужен overload
Обсуждают сегодня