Здравствуйте, Ikemefula, Вы писали:
I>I>const f:(a:any)=>any = (a:string) => 5
I>
Увы, это не "любая функция".
У "любой функции" (
top) вход должен быть максимально узким, а выход — максимально широким. А у "никакой функции" (
bottom) наоборот — вход самый широкий, а выход самый узкий. Кроме того, количество аргументов должно быть произвольным, как минимум на входе (а если язык поддерживает множественные выходные аргументы — то и на выходе тоже).
UPD. Ах да, изначально я сказал не про "любую функцию", а про "функцию с любым входом и/или выходом", что, конечно, не одно и то же (хотя в голове я имел в виду именно первый вариант). Но возражение про количество аргументов все равно остается в силе.