我如何注释我希望任何类型作为输入,但与Flow的输出类型相同?

时间:2016-10-26 11:34:28

标签: javascript typing flowtype

假设我有一个非常简单的函数,只需要接受任何类型的参数并将其包装在数组中。

function wrap (anything) {
  return [anything]
}

这很容易在(我理解的)Hindley-Milner注释中描述,像这样:

// wrap :: a -> [a]

我如何使用Flow的类型注释来显示同样的事情,即我想要任何类型作为输入,以及与输出相同类型的数组?

以下不起作用:

function wrap (anything: a): Array<a> {
  return [anything]
}

它抛出了这个错误:

ERROR in src/wrap.js:1
 1: function wrap(x: a): Array<a> {
                     ^ identifier `a`. Could not resolve name

1 个答案:

答案 0 :(得分:2)

这是polymorphic functions的语法:

MSOnline