typescript generic에 대해 설명해줘
Typescript의 제네릭은 코드의 재사용성과 타입 안정성을 높이기 위해 사용되는 강력한 기능입니다. 제네릭은 타입을 동적으로 지정할 수 있게 해주며, 클래스, 함수, 인터페이스 등 여러 곳에서 사용될 수 있습니다. 이를 통해 런타임 시점에서 타입 검사를 수행할 수 있고, 타입 안정성을 보장할 수 있습니다. 예를 들어, 배열의 원소 타입이나 함수의 매개변수 타입을 제네릭으로 지정하여 재사용성과 안정성을 향상시킬 수 있습니다.
generic을 사용한 예시 코드
// 제네릭을 사용한 클래스
class Stack<T> {
private items: T[] = [];
push(item: T) {
this.items.push(item);
}
pop(): T | undefined {
return this.items.pop();
}
isEmpty(): boolean {
return this.items.length === 0;
}
}
// 제네릭을 사용한 함수
function printArray<T>(arr: T[]): void {
for (const item of arr) {
console.log(item);
}
}
// 제네릭을 사용한 인터페이스
interface Pair<K, V> {
key: K;
value: V;
}
// 사용 예시
const stack = new Stack<number>();
stack.push(1);
stack.push(2);
stack.push(3);
console.log(stack.pop()); // 3
const numbers = [1, 2, 3, 4, 5];
printArray(numbers);
const pair: Pair<string, number> = { key: "age", value: 25 };
제네릭을 사용하면 타입을 동적으로 지정할 수 있어서 재사용성과 타입 안정성을 높일 수 있습니다. 이는 클래스, 함수, 인터페이스 등 다양한 상황에서 유용하게 사용될 수 있습니다.