제네릭 함수란 타입 인수를 받는 함수이다. 타입 인수를 받는 함수는 사용하는 쪽에서 타입을 정의한다.
1. 함수 표현식에 함수 이름이 없는 경우
function 바로 뒤에 타입 인수 목록을 넣는다.
const func = function<T>(element: T, length: number):T[] {}
2. 화살표 함수
인수 목록 바로 앞에 타입 인수 목록을 넣는다.
const func = <T>(elemet: T, length: number):T[] => {}
3. 메서드 기법
메서드명 뒤 + 인수 목록 앞에 타입 인수 목록을 넣는다.
const utils = {
func<T>(element: T, length: number):T[] {}
}
4. 타입 인수 목록이 여럿인 경우
콤마(,)를 사용하여 타입 인수를 구분 짓는다.
const func = <Left, Right>(left: Left, right: Right):[Left, Right] => [left, right];
const pair = func<string, number>('minju', 25);