generic type이란 함수를 작성하는 그 순간에는
정확히 어떠한 타입이 들어올지 알 수 없는 경우에 사용한다.
이 때 any 타입과 착각하면 안되는 것이 generic은 any와는 엄연히 다른 타입이라는 것이다.
generic 타입은 입력이 주어져 타입이 결정되는 그 순간 타입의 값을 기억한다.
그리고 해당 타입을 다른 generic에도 전파해준다.
function fnc<T>(arr:T[]):T{
return arr[0];
}
const ary:number[]=[1,2,3];
console.log(fnc(ary)); // 1
위 코드는 number 배열을 받아 배열의 0 번째 인자를 반환한다.
function fnc<T>(arr:T[]):T{
return arr[0];
}
const ary:number[]=[1,2,3];
const ary2:string[]=['a','b','c'];
console.log(fnc(ary)); //1
console.log(fnc(ary2)); // a
함수는 그대로 사용하고도 string 배열을 넣어 사용할 수 있는 범용성을 갖추게 되었다.