类型函数具有匹配的通用回调

时间:2019-09-25 21:54:39

标签: typescript

const example = <a, b> (o: (a) => b, c: (b) => a) => {

}

example(() => 1, (n) => n)

我正在寻找要分配给n的号码,但没有收到警告。

1 个答案:

答案 0 :(得分:2)

在Typescript Playground中玩这个游戏,我想到了以下似乎可以按照您期望的方式解析类型的

const example = <a, b>(o: ((arg1: a) => b), c: ((arg2: b) => a)) => {}

example(() => 1, (n) => n);

这里有两个区别:

  1. 我将example函数参数类型括在括号中以使它们更清晰(至少在我看来-我在将函数包裹在函数内部时遇到麻烦),并且
  2. 我添加了参数名称(arg1arg2

我可以合理地确定这就是您想要的-我认为函数类型表达式需要参数名称。例如,以下结果导致“参数有名称但没有类型。您是说'arg0:a'吗?”操场上的错误:

type f1 <a, b>(a) => b;