Существует причина, по которой это не работает: Lambda
- это универсальный тип, который не является универсальной функцией (как только вы укажете их для Lambda
, этот тип устанавливается в камне для функции. Оригинальная функция с другой стороныявляется универсальной функцией, она может принимать любой параметр типа при вызове.
Чтобы определить псевдоним типа для универсальной функции, синтаксис:
type Lambda = <T>(source: Thing<T>) => Other<T>;
const lambda: Lambda = <T>(source: Thing<T>) => ...