значение и массив валидных значений, и возвращает boolean валидности. например:
                  
                  
                  
                  
                  
                  isValid(1, [1, 2]); // true
                  
                  
                  isValid(1, [0]); // false
                  
                  
                  isValid('string', [1]); // TS error, string is not assignable to number
                  
                  
                  
                  
                  
                  это можно типизировать следующим образом:
                  
                  
                  
                  
                  
                  declare function isValid<T>(value: T, validValues: T[]): boolean;
                  
                  
                  
                  
                  
                  а можно ли как-то пойти ещё дальше и проверять, входит ли value в validValues?
                  
                  
                  
                  
                  
                  isValid(0, [0, 1]); // true
                  
                  
                  isValid(2, [0, 1]); // TS error, because the array doesn't include 2
                  
                  
                
Ну для второго случая тебе по сути не нужна функция тогда вообще, а нужен хелпер тайп
это просто упрощённый пример, а вообще именно функция нужна
Обсуждают сегодня