2016-10-26 6 views
0

Скажем, у меня очень простая функция, которая просто принимает аргумент любого типа и обертывает его в массив.Как я могу аннотировать Я хочу, чтобы какой-либо тип вводился, но что-то типа того же типа, что и вывод с потоком?

function wrap (anything) { 
    return [anything] 
} 

Это было бы очень легко описано в (что я понимаю, чтобы быть) Хиндли-Милнера аннотацию, как это:

// wrap :: a -> [a] 

Как бы я идти об использовании Flow «S аннотацию типа, чтобы показать это то же самое, т. е. что я хочу, чтобы какой-либо тип вводился, и массив того же типа, что и вывод?

Следующая не работает:

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 

ответ