The type signature
map :: (a -> b) -> [a] -> [b]
would be a brief way of announcing the intention that a function named map
had, as its first argument, another function with the type signature (a -> b)
(a function (a -> b) is taking an argument of any type, and returning a value which may be of a different type)
and as its second argument: an array of values of type a.
Finally it tells us that the output of this function is intended to be an array of values of type b.
(In other words, of any consistent type, which doesn't have to be the same as type a, but will be the same as the output of the (a -> b) function.
JavaScript is not a strongly typed language, but it can still be helpful to use type signatures to communicate clarity about the intended type behaviour of a function.
See for example, the entries in this JS library:
http://ramdajs.com/docs/#chain
If you work with Haskell, in which the compiler can actually make use of the optional type signature, there is a very useful search engine (Hoogle) which allows you to find functions by their type signature rather than by their name.
There is, in fact, a sense in which the type signature is more eloquent and fundamental than the name.
https://www.haskell.org/hoogle/