Typescript, Generics, Polymorphism.
function is declared: type ArrayTransformer<T> = (input: T[]) => T[]; The inline function typing that waits for the type to be bound or inferred during the function call: const reverseArray = <T>(array: T[]): T[] => array.slice().reverse(); The difference is in scope. The generic <T> in the first