([1, 2, 3]); // 튜플 타입"> ([1, 2, 3]); // 튜플 타입"> ([1, 2, 3]); // 튜플 타입">

제네릭 소개 - 제네릭

/**
 * **제네릭**
 */

// 제네릭 함수 (일반적인, 포괄적인 함수)
// <T> 에서 T는 타입 변수 (상황에 따라 타입이 달라짐 -> 호출할때 결정됨)
function func<T>(value: T): T {
    return value;
}

let num = func(10);

let bool = func(true);

let str = func("string");

// 함수에서 타입을 정하는 거 말고 호출할 때 이렇게 정할 수 도 있음 
let arr1 = func([1, 2, 3] as [number, number, number]); // 튜플 타입
let arr2 = func<[number, number, number]>([1, 2, 3]);  // 튜플 타입