상세 컨텐츠

본문 제목

[CS공부] 제네릭 (Generic) : 타입스크립트(Typescript)

CS 공부

by 비굴이 2023. 3. 31. 14:51

본문

 

제네릭은 자바에서 타입 안정성을 보장하기 위한 개념으로 사용됩니다.
하지만 타입의 안정성을 보장하기 위해서 작성하는 것이기 때문에 타입스크립트에서도
제네릭을 사용할 수 있습니다.

제네릭은 general이라는 단어에서 시작한 단어이니만큼
타입을 일반화한다고 생각하면 될 것 같습니다.

보통은 변수 등을 선언하는 시점에서 타입을 지정해주기 마련인데,
생성 시점에서 타입을 명시하여 하나의 타입이 아닌 다양한 타입을 사용할 수 있도록 해줍니다.

당연히 여러 타입으로 지정한 다음에 타입에 따른 작업을 하기 때문에
코드의 재사용성이 증가한다는 장점이 있습니다.

예시를 들어보겠습니다.

숫자열, 문자열, 불린 값에 따라 다른 작업을 하고 싶다고 가정하겠습니다.

 

function NumberFunc(value: number): number {
	return value;
}

function StringFunc(value: string): string {
	return value;
}

function BooleanFunc(value: boolean): boolean {
	return value;
}

 

이렇게 작업하면 똑같은 작업을 가진 코드가 3개가 만들어지게 됩니다.
이러한 문제점을 해결하기 위해 제네릭을 사용하게 됩니다.

 

function GenericFunc<T>(value: T): T {
	return value;
}

 

함수를 생성할 때 T를 넣어주고 <>로 닫아줍니다. 타입도 T로 지정해서 만들어줍니다.
이 때의  T는 어떠한 단어로도 바뀔 수 있으며 T는 그냥 Type의 앞글자일 뿐입니다

타입에 따라 해당 함수를 사용하는 것을 예로 나타내면

 

let String = GenericFunc<string>('안녕하세요')
let Number = GenericFunc<number>('1234')

 

따라서 같은 함수 이지만 타입에 따라 구분해서 사용이 가능한 것을 확인할 수 있습니다.

관련글 더보기