Скажем, у меня есть очень простая функция, которая просто принимает аргумент любого типа и заключает его в массив.
function wrap (anything) {
return [anything]
}
Это было бы очень легко описано в (как я понимаю) аннотации Хиндли-Милнера, например:
// 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