Определить тип возвращаемоего значения функции, в зависимости от переданного параметра
У меня есть тип:
type TaskType = "return professions";
И есть описанная функция в интерфейсе:
interface IInterfaceName
{
getReponse(message: string, task?: TaskType): string | string[];
}
Моя задача, чтобы функция возвращала не string | string[]
, а более известный тип. Для текущей задачи, если мы передаем в taks
значение "return professions"
, функция должна вернуть string
, если же я передам undefined
(или же вызову функцию без передачи параметра), я хочу получить тип string
.
Я слышал про infer
, возможно оно окажется решением. Но я не пойму как это написать.
getResponse("test") // return type: string
getResponse("test", "return professions") // return type: string[]
Источник: Stack Overflow на русском