[typescript] 제네릭 인터페이스를 사용하여 다양한 데이터 처리 방식 구현하기
TypeScript는 JavaScript에 타입을 추가한 언어이며, 제네릭 기능을 통해 데이터 타입에 대한 추상화를 가능하게 합니다. 이를 통해 코드의 유연성을 높일 수 있으며, 재사용 가능한 구성 요소를 쉽게 작성할 수 있습니다.
제네릭 인터페이스란?
제네릭 인터페이스는 인터페이스 내에서도 타입 파라미터를 사용할 수 있도록 해주는 기능입니다. 이를 통해 다양한 타입의 데이터를 다루는 컴포넌트를 만들 수 있으며, 코드의 재사용성을 높일 수 있습니다.
아래는 제네릭 인터페이스의 기본 구조입니다.
interface SomeInterface<T> {
value: T;
print: (value: T) => void;
}
위 코드에서 SomeInterface
는 제네릭 타입 T
를 포함하고 있으며, value
property와 print
메소드는 이 타입을 활용합니다.
예시: 스택(Stack) 구현하기
제네릭 인터페이스를 사용하여 스택을 구현해보겠습니다. 스택은 나중에 추가된 데이터가 먼저 제거되는 자료구조입니다.
interface Stack<T> {
push: (value: T) => void;
pop: () => T | undefined;
}
class CustomStack<T> implements Stack<T> {
private items: T[] = [];
push(value: T) {
this.items.push(value);
}
pop() {
return this.items.pop();
}
}
const numberStack: Stack<number> = new CustomStack<number>();
numberStack.push(1);
numberStack.push(2);
console.log(numberStack.pop()); // Output: 2
위의 예시에서 CustomStack
클래스는 제네릭 인터페이스 Stack
을 구현하고 있습니다. 이를 통해, 숫자를 요소로 갖는 스택을 생성하고 활용하는 예시를 확인할 수 있습니다.
결론
제네릭 인터페이스를 활용하면 코드의 재사용성을 높일 수 있으며, 타입 안정성을 보장할 수 있습니다. TypeScript에서 제네릭을 적극적으로 활용하여, 다양한 데이터를 다루는 유연하고 안정적인 코드를 작성할 수 있습니다.
참고 자료: TypeScript 공식 문서 - 제네릭