이번에는 TypeScript에서 정적 메서드와 인스턴스 메서드를 사용하여 다른 클래스의 데이터를 조작하는 방법에 대해 알아보겠습니다.
정적 메서드(Static Methods)란?
정적 메서드는 특정 클래스의 인스턴스를 생성하지 않고, 클래스 자체에서 직접 호출할 수 있는 메서드입니다. 정적 메서드를 사용하면 특정한 인스턴스를 생성하지 않고도 클래스 전체에서 공통적으로 사용할 수 있는 메서드를 구현할 수 있습니다.
class Calculator {
static add(a: number, b: number): number {
return a + b;
}
}
console.log(Calculator.add(5, 3)); // Output: 8
위의 예제에서 add
메서드는 Calculator
클래스의 정적 메서드로, 클래스 자체에서 직접 호출될 수 있습니다.
인스턴스 메서드(Instance Methods)란?
인스턴스 메서드는 클래스의 인스턴스를 생성한 후에 사용할 수 있는 메서드로, 해당 클래스의 각 인스턴스마다 별도로 존재합니다.
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return `Hello, ${this.greeting}!`;
}
}
const myGreeter = new Greeter('world');
console.log(myGreeter.greet()); // Output: Hello, world!
위의 예제에서 greet
메서드는 Greeter
클래스의 인스턴스 메서드로, 해당 클래스의 인스턴스를 생성한 후에 호출됩니다.
정적 메서드와 인스턴스 메서드의 활용
정적 메서드와 인스턴스 메서드를 조합하여 다른 클래스의 데이터를 조작할 수 있습니다.
class MathHelper {
static multiply(a: number, b: number): number {
return a * b;
}
}
class NumberManipulator {
value: number;
constructor(initialValue: number) {
this.value = initialValue;
}
multiplyBy(multiplier: number) {
this.value = MathHelper.multiply(this.value, multiplier);
}
getValue(): number {
return this.value;
}
}
const manipulator = new NumberManipulator(5);
manipulator.multiplyBy(3);
console.log(manipulator.getValue()); // Output: 15
위의 예제에서 NumberManipulator
클래스는 MathHelper
클래스의 정적 메서드 multiply
를 활용하여 내부 데이터를 조작합니다.
마무리
정적 메서드와 인스턴스 메서드는 TypeScript에서 클래스를 보다 유연하게 활용할 수 있도록 도와줍니다. 적절히 조합하여 클래스 간의 데이터 교류나 변형을 보다 효율적으로 처리할 수 있습니다.
참고 자료: TypeScript 공식 문서 - Classes
이상으로 TypeScript에서 정적 메서드와 인스턴스 메서드를 사용하여 다른 클래스의 데이터를 조작하는 방법에 대해 알아보았습니다. 계속해서 TypeScript를 활용하여 더 다양한 기능들을 탐구해보시기 바랍니다!