[typescript] 프로퍼티 셋터/게터 작성 시 주의할 점

프로퍼티 셋터와 게터를 작성할 때 몇 가지 주의할 점이 있습니다.

  1. 접근 제어자 활용: 프로퍼티 셋터와 게터는 public, private, 또는 protected로 지정할 수 있습니다. 이를 통해 프로퍼티에 대한 접근을 제어할 수 있습니다.

     class Example {
         private _value: number;
    
         get value(): number {
             return this._value;
         }
    
         set value(newValue: number) {
             if (newValue >= 0) {
                 this._value = newValue;
             }
         }
     }
    
  2. 명명 규칙 준수: 프로퍼티 셋터와 게터의 이름은 해당 프로퍼티의 이름과 일치해야 합니다. 조금 더 일반적인 사례는 get/set 접두어를 사용하는 것입니다.

     class Example {
         private _value: number;
    
         get value(): number {
             return this._value;
         }
    
         set value(newValue: number) {
             this._value = newValue;
         }
     }
    
  3. 무한 루프 방지: 프로퍼티 셋터나 게터 내에서 해당 프로퍼티를 읽거나 쓰는 무한 루프를 방지하기 위해 다른 이름을 사용해야 합니다.

     class Example {
         private _value: number;
    
         get value(): number {
             return this._value;
         }
    
         set value(newValue: number) {
             if (newValue !== this._value) {
                 this._value = newValue;
             }
         }
     }
    

프로퍼티 셋터와 게터를 올바르게 작성하면 객체의 속성을 보다 세밀하게 제어할 수 있습니다. 하지만 프로퍼티 셋터와 게터를 남용하면 코드를 복잡하게 만들 수 있으므로 적절하게 활용해야 합니다.