자바스크립트와 TypeScript에서 객체를 다룰 때 일반적으로 사용되는 기법 중에 하나가 객체 분해 할당입니다. 객체 분해 할당은 객체의 속성을 변수로 쉽게 분해하여 가져올 수 있는 방법을 제공합니다. 또한, 프로퍼티 셋터와 프로퍼티 게터를 통해 객체의 속성에 접근을 제어하는 방법도 있습니다.
객체 분해 할당
일반적으로 우리는 객체의 특정 속성을 쉽게 가져오려 할 때 다음과 같이 .
연산자를 사용합니다.
const person = {
name: "Alice",
age: 30,
job: "Engineer"
};
const name = person.name;
const age = person.age;
하지만 객체 분해 할당을 사용하면 좀 더 간결하고 가독성이 좋아집니다.
const { name, age } = person;
위의 예제에서 const { name, age } = person;
은 person
객체의 name
과 age
속성을 분해하여 name
과 age
변수에 할당하는 것을 의미합니다.
프로퍼티 셋터와 프로퍼티 게터
프로퍼티 셋터와 프로퍼티 게터는 접근자 프로퍼티(Accessor Property)라고도 불리며, 객체의 속성에 값을 설정하거나 가져올 때 자체적으로 작동하는 메커니즘을 제공합니다.
프로퍼티 셋터와 게터를 사용하여 객체의 속성에 접근을 제어하는 예제를 살펴봅시다.
class Circle {
private _radius: number = 0;
get radius(): number {
return this._radius;
}
set radius(value: number) {
if (value < 0) {
throw new Error('Radius cannot be negative');
}
this._radius = value;
}
}
const circle = new Circle();
circle.radius = 10; // set radius using setter
console.log(circle.radius); // get radius using getter
위의 Circle
클래스에서 radius
속성에 대한 프로퍼티 셋터와 게터를 정의했습니다. 이를 통해 값을 설정할 때(셋터) 유효성을 검사하거나 특정 로직을 추가로 수행할 수 있습니다. 또한, 값을 가져올 때(게터) 추가적인 로직을 수행할 수도 있습니다.
객체 분해 할당과 프로퍼티 셋터/게터를 사용하면 코드의 가독성을 높이고 객체의 속성에 대한 접근을 더욱 효율적으로 제어할 수 있습니다. TypeScript에서는 이러한 기능을 활용하여 안정적이고 응집력 있는 코드를 작성할 수 있습니다.