[typescript] 제네릭 인터페이스를 활용하여 다른 객체와의 상호작용 방법
제네릭 인터페이스를 사용하면 TypeScript에서 다른 객체와의 상호작용 방법을 정의하고 일반화할 수 있습니다. 이를 통해 코드의 재사용성을 높일 수 있으며 일반적인 유형의 다양한 객체들과 상호작용하는 함수나 클래스를 생성할 수 있습니다.
제네릭 인터페이스란?
제네릭 인터페이스는 일반적인 유형을 정의하기 위한 인터페이스입니다. 이를 통해 타입의 유연성을 확보하면서, 코드의 재사용성 및 유지보수성을 높일 수 있습니다. 제네릭 인터페이스를 사용하면 함수, 클래스 또는 객체와의 상호작용 방법을 한 번에 정의할 수 있습니다.
예시: 제네릭 인터페이스를 활용한 객체 상호작용
다음은 제네릭 인터페이스를 사용하여 객체와의 상호작용을 구현하는 간단한 예시입니다.
interface Generator<T> {
generate(): T;
}
class RandomNumberGenerator implements Generator<number> {
generate(): number {
return Math.random();
}
}
class Person {
name: string;
constructor(name: string) {
this.name = name;
}
}
class PersonGenerator implements Generator<Person> {
generate(): Person {
const names = ["Alice", "Bob", "Charlie"];
const randomIndex = Math.floor(Math.random() * names.length);
return new Person(names[randomIndex]);
}
}
function generateAndPrint(generator: Generator<any>) {
const generatedValue = generator.generate();
if (generatedValue instanceof Person) {
console.log(`Generated person's name: ${generatedValue.name}`);
} else {
console.log(`Generated number: ${generatedValue}`);
}
}
const numberGenerator = new RandomNumberGenerator();
const personGenerator = new PersonGenerator();
generateAndPrint(numberGenerator);
generateAndPrint(personGenerator);
위 코드에서는 Generator
제네릭 인터페이스를 정의하고, 구체적인 유형에 대한 구현체를 작성하고 있습니다. 이를 통해 generateAndPrint
함수에서 여러 유형의 객체를 생성하고 출력할 수 있습니다.
마무리
제네릭 인터페이스는 TypeScript에서 다양한 객체와의 상호작용 방법을 일반화하고 재사용 가능한 코드를 작성하는 데 유용한 도구입니다. 객체와의 상호작용에서 타입의 유연성을 유지하면서, 타입 안정성을 확보할 수 있는 제네릭 인터페이스를 적극적으로 활용하여 보다 유연하고 확장 가능한 코드를 작성해 보세요.