Typescript – the syntax for Typescript arrow functions with generics

typescript

The typescript handbook currently has nothing on arrow functions. Normal functions
can be generically typed with this syntax:
example:

function identity<T>(arg: T): T {
    return arg;
}

What is the syntax for arrow functions?

Best Answer

The full example explaining the syntax referenced by Robin... brought it home for me:

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;