Типизируйте функцию getPlayer так, чтобы тип результата зависел от аргумента:
getPlayer()возвращаетPromise<Player>;getPlayer(true)возвращаетPromise<Signature>.
interface Player { id: string; name: string }
interface Signature { signature: string }
declare function getPlayer(/* ? */): /* ? */;
const a = await getPlayer(); // Player
const b = await getPlayer(true); // Signature
Что получится, если передать переменную типа boolean?