楔子

Arrow Function 很常使用,但它的 Generic Type 有點不太好記,列舉一下幾種

Generic Arrow Functions

正常的函數 Generice Type 的格式

function firstOrNull<T>(arr: T[]): T | null {
  return arr.length === 0 ? null : arr[0];
}

General

const firstOrNull = <T>(
  arr: T[]
): T | null =>
  arr.length === 0 ? null : arr[0];

Extends trick

const firstOrNull = <T extends unknown>(
  arr: T[]
): T | null =>
  arr.length === 0 ? null : arr[0];

Comma trick

const firstOrNull = <T,>(
  arr: T[]
): T | null =>
  arr.length === 0 ? null : arr[0];

資料來源