Здравствуйте, есть generic функция, которая принимает функцию, которая возвращает промис с заданным типом данных. Проблема в том, что у этого типа данных может быть разный уникальный ключ, id или uuid, при этом в случае id это number, а uuid string. Как сделать так, чтобы TS, понимал, что если доступен ключ id, значит аргумент принимаемый в функции fetcher должен быть number, а если uuid то string?
https://www.typescriptlang.org/play?#code/C4TwDgpg...