xxxxxxxxxx
Generic functions
// Something like the following works fine:
function foo<T>(x: T): T { return x; }
// However using an arrow generic function will not:
const foo = <T>(x: T) => x; // ERROR : unclosed `T` tag
// Workaround: Use extends on the generic parameter
// to hint the compiler that it's a generic, e.g.:
const foo = <T extends unknown>(x: T) => x;
xxxxxxxxxx
Typically a generic funtion is an instance of a class that inherit boht from function and standard objects .Thus generic functions are both fucntions and ordinary objects