TypeScript - 제네릭 (Generics)

oong·2022년 8월 11일
0

Generic을 이용하면 클래스나 함수, 인터페이스를 다양한 타입으로 재사용할 수 있다. 선언할 때는 그냥 Type Parameter만 적어 주고, 선언할 때 사용하는 타입을 결정한다.

function getSize<T>(arr: T[]):number {
    return arr.length;
}

const arr1 = [1, 2, 3];
getSize<number>(arr1); // 3

const arr2 = ["a", "b", "c"];
getSize<string>(arr2); // 3

위와 같이 함수에 제네릭 타입을 설정하면 함수를 사용할 때 타입을 지정하여 사용할 수 있다.

interface Mobile<T> {
    name: string;
    price: number;
    option: T;
}

const m1: Mobile<{ color: string; coupon: boolean;}> = {
    name: "s21",
    price: 1000,
    option: {
        color: "red",
        coupon: false,
    },
};

const m2: Mobile<string> = {
    name: "s20",
    price: 900,
    option: "good",
};

제네릭을 사용하여 하나의 인터페이스를 선언하고 다양한 객체를 만들 수 있다.

function showName<T extends { name: string }>(data: T): string {
    return data.name;
}

위와 같이 제네릭에 extends를 사용하면 name에 string 값을 가지는 것으로 타입을 설정할 수 있다.

제네릭은 코드를 재사용하는 측면에서 아주 유용하다!

0개의 댓글

관련 채용 정보