To explain what I want here's an example. Supposing I have an array shuffle function I want to be able to do this:
type shuffleArray = (someType[])=>someType[]
Where someType isn't declared anywhere but inferred when an argument is passed to the function instead of having to pass the generic type argument in advance like so:
type shuffleArray<T> = (T[])=>T[]
Ideally, I could then use someType on variables inside the body of the function. I don't know if there is a way of doing this and I couldn't find one but it seems like it should be doable.