타입스크립트(TypeScript)에서 제네릭(Generic)은 다양한 타입을 처리하는 코드를 작성할 때 유용한 기능입니다. 제네릭을 사용하면 함수, 클래스 또는 인터페이스의 동작을 여러 타입에서 재사용할 수 있으며 타입 안정성도 보장할 수 있습니다.
제네릭을 사용하면 코드를 작성할 때 타입이 정적으로 지정되지 않고, 추후에 사용하는 시점에서 타입을 결정할 수 있습니다. 제네릭은 대괄호 < >
내에 타입 매개변수를 선언하여 사용됩니다. 타입 매개변수는 일반적으로 T
라는 이름으로 표기되지만, 실제로는 어떤 이름이든 사용할 수 있습니다.
예시를 통해 제네릭의 사용 방법을 살펴보겠습니다:
// 제네릭 함수 예시
function identity<T>(arg: T): T {
return arg;
}
// 사용 예시
let result1 = identity<string>("Hello"); // 타입 매개변수에 string을 전달하여 사용
let result2 = identity<number>(42); // 타입 매개변수에 number를 전달하여 사용
// 제네릭 클래스 예시
class Box<T> {
private value: T;
constructor(value: T) {
this.value = value;
}
getValue(): T {
return this.value;
}
}
// 사용 예시
let box1 = new Box<string>("Hello"); // 타입 매개변수에 string을 전달하여 사용
let box2 = new Box<number>(42); // 타입 매개변수에 number를 전달하여 사용
위의 예시에서 identity
함수와 Box
클래스는 제네릭으로 정의되었습니다. 이들은 여러 타입에서 사용할 수 있으며, 타입 매개변수를 통해 전달된 타입에 따라 동작합니다. 타입 매개변수는 일종의 placeholder 역할을 하며, 실제 사용 시점에서 구체적인 타입으로 대체됩니다.
제네릭을 사용하면 코드의 유연성과 재사용성이 증가하며, 타입 안정성도 향상됩니다. 컬렉션, 함수, 클래스 등 다양한 상황에서 제네릭을 적용하여 타입 안정성을 유지하면서 일반화된 코드를 작성할 수 있습니다.